From f34256ba698e4d4d761d6cb2ea332fd8b3322838 Mon Sep 17 00:00:00 2001 From: meepingsnesroms Date: Sat, 29 Dec 2018 11:40:04 -0800 Subject: [PATCH] No more cyclone --- bugs/fixed/cycloneArmv4ModeCrash.txt | 18 - bugs/regressions.txt | 4 +- bugs/unimplementedHardware.txt | 2 - libretroBuildSystem/build/Makefile.common | 14 +- libretroBuildSystem/jni/Android.mk | 10 - qtBuildSystem/Mu/Mu.pro | 35 +- readme.md | 1 - src/debug/sandbox.c | 4 +- src/emulator.h | 1 - src/flx68000.c | 148 +- src/m68k/cyclone/Cyclone.h | 110 - src/m68k/cyclone/CycloneNew.S | 64807 -------------------- src/m68k/cyclone/CycloneOld.S | 64796 ------------------- src/m68k/cyclone/config.h | 192 - src/m68k/{musashi => }/m68k.h | 0 src/m68k/{musashi => }/m68kconf.h | 0 src/m68k/{musashi => }/m68kcpu.c | 0 src/m68k/{musashi => }/m68kcpu.h | 0 src/m68k/{musashi => }/m68kdasm.c | 0 src/m68k/{musashi => }/m68kopac.c | 0 src/m68k/{musashi => }/m68kopdm.c | 0 src/m68k/{musashi => }/m68kopnz.c | 0 src/m68k/{musashi => }/m68kops.c | 0 src/m68k/{musashi => }/m68kops.h | 0 src/makefile.all | 24 +- src/memoryAccess.c | 3 +- 26 files changed, 30 insertions(+), 130139 deletions(-) delete mode 100644 bugs/fixed/cycloneArmv4ModeCrash.txt delete mode 100644 src/m68k/cyclone/Cyclone.h delete mode 100644 src/m68k/cyclone/CycloneNew.S delete mode 100644 src/m68k/cyclone/CycloneOld.S delete mode 100644 src/m68k/cyclone/config.h rename src/m68k/{musashi => }/m68k.h (100%) rename src/m68k/{musashi => }/m68kconf.h (100%) rename src/m68k/{musashi => }/m68kcpu.c (100%) rename src/m68k/{musashi => }/m68kcpu.h (100%) rename src/m68k/{musashi => }/m68kdasm.c (100%) rename src/m68k/{musashi => }/m68kopac.c (100%) rename src/m68k/{musashi => }/m68kopdm.c (100%) rename src/m68k/{musashi => }/m68kopnz.c (100%) rename src/m68k/{musashi => }/m68kops.c (100%) rename src/m68k/{musashi => }/m68kops.h (100%) diff --git a/bugs/fixed/cycloneArmv4ModeCrash.txt b/bugs/fixed/cycloneArmv4ModeCrash.txt deleted file mode 100644 index 6b64f27..0000000 --- a/bugs/fixed/cycloneArmv4ModeCrash.txt +++ /dev/null @@ -1,18 +0,0 @@ -0x9bdfeacc 0f 10 08 e2 and r1, r8, #15 -0x9bdfead0 <+0x0004> 01 11 d7 e7 ldrb r1, [r7, r1, lsl #2] -0x9bdfead4 <+0x0008> 01 2c b0 e1 lsls r2, r1, #24 -0x9bdfead8 <+0x000c> 02 a1 02 e2 and r10, r2, #-2147483648 ; 0x80000000 -0x9bdfeadc <+0x0010> 01 a1 8a 03 orreq r10, r10, #1073741824 ; 0x40000000 -0x9bdfeae0 <+0x0014> 1e 2c 08 e2 and r2, r8, #7680 ; 0x1e00 -0x9bdfeae4 <+0x0018> a2 03 97 e7 ldr r0, [r7, r2, lsr #7] -0x9bdfeae8 <+0x001c> 01 30 80 e2 add r3, r0, #1 -0x9bdfeaec <+0x0020> a2 33 87 e7 str r3, [r7, r2, lsr #7] -0x9bdfeaf0 <+0x0024> 0f e0 a0 e1 mov lr, pc -0x9bdfeaf4 <+0x0028> 74 f0 97 e5 ldr pc, [r7, #116] ; 0x74 -0x9bdfeaf8 <+0x002c> b2 80 d4 e0 ldrh r8, [r4], #2 -0x9bdfeafc <+0x0030> 08 50 55 e2 subs r5, r5, #8 -0x9bdfeb00 <+0x0034> 08 f1 96 c7 ldrgt pc, [r6, r8, lsl #2] -0x9bdfeb04 <+0x0038> a3 fb ff ea b 0x9bdfd998 - -Crashed with SIGSEGV -When compiled in release mode crashes with SIGILL \ No newline at end of file diff --git a/bugs/regressions.txt b/bugs/regressions.txt index 3ac4b5b..b808fc4 100644 --- a/bugs/regressions.txt +++ b/bugs/regressions.txt @@ -1,5 +1,3 @@ -cyclone68k is crasing again when you turn the Palm off then turn it back on - Fixed: -Endian compatibility is broken(the CPU state needs to be standardized)(fixed again with musashi and the other 68k core isn't used right now) +Endian compatibility is broken(the CPU state needs to be standardized) RetroArch port crashes on exit(needed to check if environ_cb returned true, switched to libretro-common filestreams too) diff --git a/bugs/unimplementedHardware.txt b/bugs/unimplementedHardware.txt index 83ff849..ab703bb 100644 --- a/bugs/unimplementedHardware.txt +++ b/bugs/unimplementedHardware.txt @@ -57,13 +57,11 @@ edge triggered INT* don't clear on write to ISR when masked in IMR(I needed to u PDKBEN also has a hack for power on(its been removed) On hardware PDIRQEG seems not to actually work at all(CPUID:0x57000000)(it does) may need to trigger an interrupt if a IMR masked interrupt becomes unmasked and its bit is still set in IPR(already doing that) -Cyclone will cause SIGSEGVs, don't know why yet(seems to have been caused by compressed jumptable) power button must be pushed twice to turn the CPU back on(when debugging it works the first time, then must be pushed twice to turn off instead of on)(this also occurs in the RetroArch build) the power button double press issue may be because the button map I am using was taken from POSE source, the power button may be mapped to other locations on the button matrix than expected if a sound interrupt is triggered while the button interrupt is disabled the button interrupt will still trigger(in galax game)(seems to be an issue with FIFOAV always = true hack and how INT_PWM1 needed to be cleared on read or write) SED1376 16 bpp mode is broken and crushed to the top of the screen audio can max out the resampler buffer, the max 1 FIFO sample can play is around 2.16 minutes(CLK32 / period(257) / clockDivider(16) / prescaler(128) / repeat(8))(257 * 16 * 128 * 8 / 32768=128.5 seconds)(safety check added, >= 1 second duty cycle is useless and will just make annoying cracks anyway) -Cyclone CPU emulator is not working PWM1 output value is not a direct range cast of 0<->255 to 0<->32767, its additive, see properPwmSineWave.png inductor dosent properly drain when PWM1 gets disabled PWM1 FIFOAV is always set true diff --git a/libretroBuildSystem/build/Makefile.common b/libretroBuildSystem/build/Makefile.common index f0afcdc..77917e7 100644 --- a/libretroBuildSystem/build/Makefile.common +++ b/libretroBuildSystem/build/Makefile.common @@ -28,16 +28,6 @@ else ifeq ($(platform), osx) endif endif -# ifneq (,$(filter qnx vita ctr rpi2 classic_armv7_a7,$(platform))) -# EMU_OPTIMIZE_FOR_ARM32 = 1 -# else ifneq (,$(findstring armv7,$(platform))) -# EMU_OPTIMIZE_FOR_ARM32 = 1 -# else ifneq (,$(findstring armv6,$(platform))) -# EMU_OPTIMIZE_FOR_ARM32 = 1 -# else ifneq (,$(findstring armhf,$(platform))) -# EMU_OPTIMIZE_FOR_ARM32 = 1 -# endif - include $(EMU_PATH)/makefile.all COREDEFINES += $(EMU_DEFINES) @@ -46,6 +36,8 @@ SOURCES_C := $(CORE_DIR)/libretro.c \ $(CORE_DIR)/cursors.c \ $(EMU_SOURCES_C) +SOURCES_ASM := + ifneq ($(STATIC_LINKING), 1) SOURCES_C += $(LIBRETRO_COMM_DIR)/compat/compat_strl.c \ $(LIBRETRO_COMM_DIR)/compat/compat_posix_string.c \ @@ -56,5 +48,3 @@ ifneq ($(STATIC_LINKING), 1) $(LIBRETRO_COMM_DIR)/string/stdstring.c \ $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.c endif - -SOURCES_ASM := $(EMU_SOURCES_ASM) diff --git a/libretroBuildSystem/jni/Android.mk b/libretroBuildSystem/jni/Android.mk index f236de3..60fe0df 100644 --- a/libretroBuildSystem/jni/Android.mk +++ b/libretroBuildSystem/jni/Android.mk @@ -4,16 +4,6 @@ CORE_DIR := $(LOCAL_PATH)/.. GIT_VERSION := " $(shell git rev-parse --short HEAD || echo unknown)" -# prevent persisting in non ARM builds after the first ARM build -EMU_OPTIMIZE_FOR_ARM32 := 0 - -# set ASM CPU core, only use with ARMv4<->7, ARMv8 is its own architecture -# ifeq ($(TARGET_ARCH), arm) -# ifneq ($(TARGET_ARCH_ABI), arm64-v8a) -# EMU_OPTIMIZE_FOR_ARM32 := 1 -# endif -# endif - include $(CORE_DIR)/build/Makefile.common COREFLAGS := -ffast-math -funroll-loops -D__LIBRETRO__ -DINLINE=inline -DFRONTEND_SUPPORTS_RGB565 $(INCFLAGS) $(COREDEFINES) diff --git a/qtBuildSystem/Mu/Mu.pro b/qtBuildSystem/Mu/Mu.pro index 6852f52..9d4126f 100644 --- a/qtBuildSystem/Mu/Mu.pro +++ b/qtBuildSystem/Mu/Mu.pro @@ -50,20 +50,17 @@ android{ QMAKE_CXXFLAGS += -fopenmp QMAKE_LFLAGS += -fopenmp DEFINES += EMU_MULTITHREADED - # CONFIG += optimize_for_arm32 # for now, later this will check if building for ARMv4<->7 } ios{ # QMAKE_INFO_PLIST = ios/Info.plist DEFINES += EMU_MULTITHREADED - # iOS is now ARMv8 only, cyclone wont work } CONFIG(debug, debug|release){ # debug build, be accurate, fail hard, and add logging - DEFINES += EMU_DEBUG EMU_CUSTOM_DEBUG_LOG_HANDLER - !optimize_for_arm32:DEFINES += EMU_SANDBOX + DEFINES += EMU_DEBUG EMU_CUSTOM_DEBUG_LOG_HANDLER EMU_SANDBOX macx|linux-g++{ # DEFINES += EMU_SANDBOX_OPCODE_LEVEL_DEBUG # DEFINES += EMU_SANDBOX_LOG_APIS @@ -82,19 +79,6 @@ CONFIG += c++11 INCLUDEPATH += $$PWD/qt-common/include -# only use with ARMv4<->7, ARMv8 is its own architecture -optimize_for_arm32{ - DEFINES += EMU_OPTIMIZE_FOR_ARM32 - SOURCES += ../../src/m68k/cyclone/CycloneNew.S -}else{ - SOURCES += ../../src/m68k/musashi/m68kcpu.c \ - ../../src/m68k/musashi/m68kdasm.c \ - ../../src/m68k/musashi/m68kopac.c \ - ../../src/m68k/musashi/m68kopdm.c \ - ../../src/m68k/musashi/m68kopnz.c \ - ../../src/m68k/musashi/m68kops.c -} - SOURCES += \ debugviewer.cpp \ emuwrapper.cpp \ @@ -112,7 +96,13 @@ SOURCES += \ ../../src/pdiUsbD12.c \ ../../src/sdCard.c \ ../../src/sed1376.c \ - ../../src/silkscreen.c + ../../src/silkscreen.c \ + ../../src/m68k/m68kcpu.c \ + ../../src/m68k/m68kdasm.c \ + ../../src/m68k/m68kopac.c \ + ../../src/m68k/m68kopdm.c \ + ../../src/m68k/m68kopnz.c \ + ../../src/m68k/m68kops.c HEADERS += \ debugviewer.h \ @@ -124,11 +114,10 @@ HEADERS += \ ../../src/debug/sandbox.h \ ../../src/debug/sandboxTrapNumToName.c.h \ ../../src/debug/trapNames.h \ - ../../src/m68k/cyclone/Cyclone.h \ - ../../src/m68k/musashi/m68k.h \ - ../../src/m68k/musashi/m68kconf.h \ - ../../src/m68k/musashi/m68kcpu.h \ - ../../src/m68k/musashi/m68kops.h \ + ../../src/m68k/m68k.h \ + ../../src/m68k/m68kconf.h \ + ../../src/m68k/m68kcpu.h \ + ../../src/m68k/m68kops.h \ ../../src/specs/dragonballVzRegisterSpec.h \ ../../src/ads7846.h \ ../../src/emulator.h \ diff --git a/readme.md b/readme.md index e3e44ea..60c7a30 100644 --- a/readme.md +++ b/readme.md @@ -48,7 +48,6 @@ The lack of ARM CPU will be fixed in my emulator see "OS improvements". ## Credits Musashi v3.4 (last version that builds outside of MAME)(68k Core) -Cyclone 68000 (68k Core) blip_buf 1.1.0 (Audio Resampler) http://www.iconarchive.com/show/crystal-clear-icons-by-everaldo/App-palm-icon.html (Desktop Icon) http://tango.freedesktop.org/Tango_Icon_Library (Palm Action Buttons, All UI buttons) diff --git a/src/debug/sandbox.c b/src/debug/sandbox.c index 7444ea6..bebb9b6 100644 --- a/src/debug/sandbox.c +++ b/src/debug/sandbox.c @@ -10,8 +10,8 @@ #include #include -#include "../m68k/musashi/m68k.h" -#include "../m68k/musashi/m68kcpu.h" +#include "../m68k/m68k.h" +#include "../m68k/m68kcpu.h" #include "../emulator.h" #include "../ads7846.h" #include "../hardwareRegisters.h" diff --git a/src/emulator.h b/src/emulator.h index 50c9923..4d3600c 100644 --- a/src/emulator.h +++ b/src/emulator.h @@ -17,7 +17,6 @@ extern "C" { //DEFINE INFO!!! //define EMU_MULTITHREADED to speed up long loops -//define EMU_OPTIMIZE_FOR_ARM32 to use ASM CPU core //define EMU_NO_SAFETY to remove all safety checks //define EMU_BIG_ENDIAN on big endian systems //to enable degguging define EMU_DEBUG, all options below do nothing unless EMU_DEBUG is defined diff --git a/src/flx68000.c b/src/flx68000.c index b74dce1..2cf02a9 100755 --- a/src/flx68000.c +++ b/src/flx68000.c @@ -5,26 +5,11 @@ #include "portability.h" #include "hardwareRegisters.h" #include "memoryAccess.h" - -#if defined(EMU_OPTIMIZE_FOR_ARM32) -#include //for exit(1) -#include "m68k/cyclone/Cyclone.h" -#else -#include "m68k/musashi/m68kcpu.h" -#endif +#include "m68k/m68kcpu.h" -#if defined(EMU_OPTIMIZE_FOR_ARM32) -static struct Cyclone cycloneCpu; - - -extern unsigned int m68k_read_memory_8(unsigned int address); -extern unsigned int m68k_read_memory_16(unsigned int address); -extern unsigned int m68k_read_memory_32(unsigned int address); -extern void m68k_write_memory_8(unsigned int address, unsigned char value); -extern void m68k_write_memory_16(unsigned int address, unsigned short value); -extern void m68k_write_memory_32(unsigned int address, unsigned int value); - +/* +//saving this little snippet to optimize musashi unsigned int checkPc(unsigned int pc){ unsigned int dataBufferHost; unsigned int dataBufferGuest; @@ -51,27 +36,12 @@ unsigned int checkPc(unsigned int pc){ return cycloneCpu.membase + pc;//new program counter } -#endif +*/ void flx68000Init(void){ static bool inited = false; if(!inited){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - CycloneInit(); - cycloneCpu.read8 = m68k_read_memory_8; - cycloneCpu.read16 = m68k_read_memory_16; - cycloneCpu.read32 = m68k_read_memory_32; - cycloneCpu.fetch8 = m68k_read_memory_8; - cycloneCpu.fetch16 = m68k_read_memory_16; - cycloneCpu.fetch32 = m68k_read_memory_32; - cycloneCpu.write8 = m68k_write_memory_8; - cycloneCpu.write16 = m68k_write_memory_16; - cycloneCpu.write32 = m68k_write_memory_32; - cycloneCpu.checkpc = checkPc; - cycloneCpu.IrqCallback = interruptAcknowledge; - cycloneCpu.ResetCallback = emulatorSoftReset; -#else m68k_init(); m68k_set_cpu_type(M68K_CPU_TYPE_68000); @@ -79,7 +49,6 @@ void flx68000Init(void){ m68k_set_reset_instr_callback(emulatorSoftReset); m68k_set_int_ack_callback(interruptAcknowledge); -#endif inited = true; } } @@ -87,31 +56,19 @@ void flx68000Init(void){ void flx68000Reset(void){ resetHwRegisters(); resetAddressSpace();//address space must be reset after hardware registers because it is dependent on them -#if defined(EMU_OPTIMIZE_FOR_ARM32) - CycloneReset(&cycloneCpu); -#else m68k_pulse_reset(); -#endif } uint64_t flx68000StateSize(void){ uint64_t size = 0; -#if defined(EMU_OPTIMIZE_FOR_ARM32) - size += 0x80;//specified in Cyclone.h, line 82 -#else size += sizeof(uint32_t) * 50;//m68ki_cpu -#endif return size; } void flx68000SaveState(uint8_t* data){ uint64_t offset = 0; -#if defined(EMU_OPTIMIZE_FOR_ARM32) - CyclonePack(&cycloneCpu, data + offset); - offset += 0x80;//specified in Cyclone.h, line 82 -#else uint8_t index; for(index = 0; index < 16; index++){ @@ -176,16 +133,10 @@ void flx68000SaveState(uint8_t* data){ offset += sizeof(uint32_t); writeStateValue32(data + offset, m68ki_cpu.run_mode); offset += sizeof(uint32_t); -#endif } void flx68000LoadState(uint8_t* data){ uint64_t offset = 0; - -#if defined(EMU_OPTIMIZE_FOR_ARM32) - CycloneUnpack(&cycloneCpu, data + offset); - offset += 0x80;//specified in Cyclone.h, line 82 -#else uint8_t index; for(index = 0; index < 16; index++){ @@ -250,7 +201,6 @@ void flx68000LoadState(uint8_t* data){ offset += sizeof(uint32_t); m68ki_cpu.run_mode = readStateValue32(data + offset); offset += sizeof(uint32_t); -#endif } void flx68000Execute(void){ @@ -262,14 +212,8 @@ void flx68000Execute(void){ double sysclks = dMin(cyclesRemaining, EMU_SYSCLK_PRECISION); int32_t cpuCycles = sysclks * pctlrCpuClockDivider * palmClockMultiplier; - if(cpuCycles > 0){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - cycloneCpu.cycles = cpuCycles; - CycloneRun(&cycloneCpu); -#else + if(cpuCycles > 0) m68k_execute(cpuCycles); -#endif - } addSysclks(sysclks); cyclesRemaining -= sysclks; @@ -279,110 +223,31 @@ void flx68000Execute(void){ } void flx68000SetIrq(uint8_t irqLevel){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - cycloneCpu.irq = irqLevel; - CycloneFlushIrq(&cycloneCpu); -#else m68k_set_irq(irqLevel); -#endif -} - -void flx68000RefreshAddressing(void){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - //cycloneCpu.pc = cycloneCpu.checkpc(cycloneCpu.pc); -#else - //C implementation doesnt cache address information -#endif } bool flx68000IsSupervisor(void){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - return CycloneGetSr(&cycloneCpu) & 0x2000; -#else return !!(m68k_get_reg(NULL, M68K_REG_SR) & 0x2000); -#endif } void flx68000BusError(uint32_t address, bool isWrite){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - //no bus error callback -#else +#if !defined(EMU_NO_SAFETY) //never call outsize of a 68k opcode, behavior is undefined due to longjmp m68ki_trigger_bus_error(address, isWrite ? MODE_WRITE : MODE_READ, FLAG_S | m68ki_get_address_space()); #endif } uint32_t flx68000GetRegister(uint8_t reg){ - //register standard, applys to all CPU cores - /* - 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_PC, - M68K_REG_SR - */ - -#if defined(EMU_OPTIMIZE_FOR_ARM32) - if(reg < 8) - return cycloneCpu.d[reg]; - else if(reg < 16) - return cycloneCpu.a[reg - 8]; - else if(reg == 16) - return cycloneCpu.pc; - else if(reg == 17) - return CycloneGetSr(&cycloneCpu); - - return 0x00000000; -#else return m68k_get_reg(NULL, reg); -#endif } uint32_t flx68000GetPc(void){ -#if defined(EMU_OPTIMIZE_FOR_ARM32) - return cycloneCpu.prev_pc; -#else return m68k_get_reg(NULL, M68K_REG_PPC); -#endif } uint64_t flx68000ReadArbitraryMemory(uint32_t address, uint8_t size){ uint64_t data = UINT64_MAX;//invalid access -#if defined(EMU_OPTIMIZE_FOR_ARM32) - //reading from a hardware register FIFO will corrupt it! - if(bankType[START_BANK(address)] != CHIP_NONE){ - uint16_t m68kSr = CycloneGetSr(&cycloneCpu); - CycloneSetSr(&cycloneCpu, m68kSr | 0x2000);//prevent privilege violations - switch(size){ - case 8: - data = m68k_read_memory_8(address); - break; - - case 16: - data = m68k_read_memory_16(address); - break; - - case 32: - data = m68k_read_memory_32(address); - break; - } - CycloneSetSr(&cycloneCpu, m68kSr); - } -#else //reading from a hardware register FIFO will corrupt it! if(bankType[START_BANK(address)] != CHIP_NONE){ uint16_t m68kSr = m68k_get_reg(NULL, M68K_REG_SR); @@ -402,7 +267,6 @@ uint64_t flx68000ReadArbitraryMemory(uint32_t address, uint8_t size){ } m68k_set_reg(M68K_REG_SR, m68kSr); } -#endif return data; } diff --git a/src/m68k/cyclone/Cyclone.h b/src/m68k/cyclone/Cyclone.h deleted file mode 100644 index f3c1835..0000000 --- a/src/m68k/cyclone/Cyclone.h +++ /dev/null @@ -1,110 +0,0 @@ - -// Cyclone 68000 Emulator - Header File - -// Copyright (c) 2004,2011 FinalDave (emudave (at) gmail.com) -// Copyright (c) 2005-2011 Gražvydas "notaz" Ignotas (notasas (at) gmail.com) - -// This code is licensed under the GNU General Public License version 2.0 and the MAME License. -// You can choose the license that has the most advantages for you. - -// SVN repository can be found at http://code.google.com/p/cyclone68000/ - - -#ifndef __CYCLONE_H__ -#define __CYCLONE_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -extern int CycloneVer; // Version number of library - -extern long CycloneJumpTab[65536]; // default jump table - -struct Cyclone -{ - unsigned int d[8]; // [r7,#0x00] - unsigned int a[8]; // [r7,#0x20] - unsigned int pc; // [r7,#0x40] Memory Base (.membase) + 68k PC - unsigned char srh; // [r7,#0x44] Status Register high (T_S__III) - unsigned char not_pol;// [r7,#0x45] not polling - unsigned char flags; // [r7,#0x46] Flags (ARM order: ____NZCV) [68k order is XNZVC] - unsigned char irq; // [r7,#0x47] IRQ level - unsigned int osp; // [r7,#0x48] Other Stack Pointer (USP/SSP) - unsigned int xc; // [r7,#0x4c] Extend flag (bit29: ??X? _) - unsigned int prev_pc; // [r7,#0x50] Set to start address of currently executed opcode + 2 (if enabled in config.h) - unsigned int jumptab; // [r7,#0x54] Jump table pointer - int state_flags; // [r7,#0x58] bit: 0: stopped state, 1: trace state, 2: activity bit, 3: addr error, 4: fatal halt - int cycles; // [r7,#0x5c] Number of cycles to execute - 1. Updates to cycles left after CycloneRun() - int membase; // [r7,#0x60] Memory Base (ARM address minus 68000 address) - unsigned int (*checkpc)(unsigned int pc); // [r7,#0x64] called to recalc Memory Base+pc - unsigned int (*read8 )(unsigned int a); // [r7,#0x68] - unsigned int (*read16 )(unsigned int a); // [r7,#0x6c] - unsigned int (*read32 )(unsigned int a); // [r7,#0x70] - void (*write8 )(unsigned int a,unsigned char d); // [r7,#0x74] - void (*write16)(unsigned int a,unsigned short d); // [r7,#0x78] - void (*write32)(unsigned int a,unsigned int d); // [r7,#0x7c] - unsigned int (*fetch8 )(unsigned int a); // [r7,#0x80] - unsigned int (*fetch16)(unsigned int a); // [r7,#0x84] - unsigned int (*fetch32)(unsigned int a); // [r7,#0x88] - int (*IrqCallback)(int int_level); // [r7,#0x8c] optional irq callback function, see config.h - void (*ResetCallback)(void); // [r7,#0x90] if enabled in config.h, calls this whenever RESET opcode is encountered. - int (*UnrecognizedCallback)(void); // [r7,#0x94] if enabled in config.h, calls this whenever unrecognized opcode is encountered. - void *internal_CycloneEnd; // [r7,#0x98] internal, do not modify - int internal_s_cycles; // [r7,#0x9c] internal, do not modify - void *internal_s_CycloneEnd; // [r7,#0xa0] internal, do not modify - unsigned int internal[3]; // [r7,#0xa4] reserved for internal use, do not change. -}; - -// Initialize. Used only if Cyclone was compiled with compressed jumptable, see config.h -#define CycloneInit() \ - CycloneInitJT(CycloneJumpTab) -void CycloneInitJT(void *jt); - -// Reset -#define CycloneReset(pcy) \ - CycloneResetJT(pcy, CycloneJumpTab) -void CycloneResetJT(struct Cyclone *pcy, void *jt); - -// Run cyclone. Cycles should be specified in context (pcy->cycles) -void CycloneRun(struct Cyclone *pcy); - -// Utility functions to get and set SR -void CycloneSetSr(struct Cyclone *pcy, unsigned int sr); -unsigned int CycloneGetSr(const struct Cyclone *pcy); - -// Generates irq exception if needed (if pcy->irq > mask). -// Returns cycles used for exception if it was generated, 0 otherwise. -int CycloneFlushIrq(struct Cyclone *pcy); - -// Functions for saving and restoring state. -// CycloneUnpack() uses checkpc(), so it must be initialized. -// save_buffer must point to buffer of 128 (0x80) bytes of size. -void CyclonePack(const struct Cyclone *pcy, void *save_buffer); -void CycloneUnpack(struct Cyclone *pcy, const void *save_buffer); - -// genesis: if 1, switch to normal TAS handlers -#define CycloneSetRealTAS(use_real) \ - CycloneSetRealTAS_JT(use_real, CycloneJumpTab) -void CycloneSetRealTAS_JT(int use_real, void *jt); - - -// These values are special return values for IrqCallback. - -// Causes an interrupt autovector (0x18 + interrupt level) to be taken. -// This happens in a real 68K if VPA or AVEC is asserted during an interrupt -// acknowledge cycle instead of DTACK (the most common situation). -#define CYCLONE_INT_ACK_AUTOVECTOR -1 - -// Causes the spurious interrupt vector (0x18) to be taken -// This happens in a real 68K if BERR is asserted during the interrupt -// acknowledge cycle (i.e. no devices responded to the acknowledge). -#define CYCLONE_INT_ACK_SPURIOUS -2 - - -#ifdef __cplusplus -} // End of extern "C" -#endif - -#endif // __CYCLONE_H__ - diff --git a/src/m68k/cyclone/CycloneNew.S b/src/m68k/cyclone/CycloneNew.S deleted file mode 100644 index 0a32de6..0000000 --- a/src/m68k/cyclone/CycloneNew.S +++ /dev/null @@ -1,64807 +0,0 @@ - -;@ Cyclone 68000 Emulator v0.099 - Assembler Output - -;@ Copyright (c) 2004,2011 FinalDave (emudave (at) gmail.com) -;@ Copyright (c) 2005-2011 Gražvydas "notaz" Ignotas (notasas (at) gmail.com) - -;@ This code is licensed under the GNU General Public License version 2.0 and the MAME License. -;@ You can choose the license that has the most advantages for you. - -;@ SVN repository can be found at http://code.google.com/p/cyclone68000/ - - .text - .align 4 - - .global CycloneInitJT - .global CycloneResetJT - .global CycloneRun - .global CycloneSetSr - .global CycloneGetSr - .global CycloneFlushIrq - .global CyclonePack - .global CycloneUnpack - .global CycloneVer - .global CycloneJumpTab - - .type CycloneInitJT,%function - .type CycloneResetJT,%function - .type CycloneRun,%function - .type CycloneSetSr,%function - .type CycloneGetSr,%function - .type CycloneFlushIrq,%function - .type CyclonePack,%function - .type CycloneUnpack,%function - .type CycloneVer,%object - .type CycloneJumpTab,%object - -CycloneVer: .long 0x0099 - -;@ --------------------------- Framework -------------------------- -CycloneRun: - stmdb sp!,{r4-r8,r10,r11,lr} - mov r7,r0 ;@ r7 = Pointer to Cpu Context - ;@ r0-3 = Temporary registers - ldrb r10,[r7,#0x46] ;@ r10 = Flags (NZCV) - ldr r6,[r7,#0x54] ;@ r6 = Opcode Jump table (from reset) - ldr r5,[r7,#0x5c] ;@ r5 = Cycles - ldr r4,[r7,#0x40] ;@ r4 = Current PC + Memory Base - ;@ r8 = Current Opcode - ldr r1,[r7,#0x44] ;@ Get SR high T_S__III and irq level - mov r10,r10,lsl #28;@ r10 = Flags 0xf0000000, cpsr format - ;@ r11 = Source value / Memory Base - - mov r2,#0 - str r2,[r7,#0x98] ;@ clear custom CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - beq NoInts0 - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - bgt CycloneDoInterrupt -NoInts0: - -;@ Check if our processor is in special state -;@ and jump to opcode handler if not - ldr r0,[r7,#0x58] ;@ state_flags - ldrh r8,[r4],#2 ;@ Fetch first opcode - tst r0,#0x13 ;@ special state? - ldreq pc,[r6,r8,asl #2] ;@ Jump to opcode handler - -CycloneSpecial: - tst r0,#2 ;@ tracing? - bne CycloneDoTrace -;@ stopped or halted - mov r5,#0 - str r5,[r7,#0x5C] ;@ eat all cycles - ldmia sp!,{r4-r8,r10,r11,pc} ;@ we are stopped, do nothing! - - -;@ We come back here after execution -CycloneEnd: - sub r4,r4,#2 -CycloneEndNoBack: - ldr r1,[r7,#0x98] - mov r10,r10,lsr #28 - tst r1,r1 - bxne r1 ;@ jump to alternative CycloneEnd - str r4,[r7,#0x40] ;@ Save Current PC + Memory Base - str r5,[r7,#0x5c] ;@ Save Cycles - strb r10,[r7,#0x46] ;@ Save Flags (NZCV) - ldmia sp!,{r4-r8,r10,r11,pc} - .ltorg - - -CycloneInitJT: -;@ fix final jumptable entries - add r0,r0,#0x10000*4 - ldr r1,[r0,#-3*4] - str r1,[r0,#-2*4] - str r1,[r0,#-1*4] - bx lr - -CycloneResetJT: - stmfd sp!,{r7,lr} - mov r7,r0 - str r1,[r7,#0x54] ;@ save CycloneJumpTab avoid literal pools - mov r0,#0 - str r0,[r7,#0x58] ;@ state_flags - str r0,[r7,#0x48] ;@ OSP - mov r1,#0x27 ;@ Supervisor mode - strb r1,[r7,#0x44] ;@ set SR high - strb r0,[r7,#0x47] ;@ IRQ - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - str r0,[r7,#0x3c] ;@ Stack pointer - mov r0,#0 - str r0,[r7,#0x60] ;@ Membase - mov r0,#4 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - str r0,[r7,#0x40] ;@ PC + base - ldmfd sp!,{r7,pc} - -CycloneSetRealTAS_JT: - bx lr - -CycloneSetSr: - mov r2,r1,lsr #8 - and r2,r2,#0xa7 ;@ only defined bits - strb r2,[r0,#0x44] ;@ set SR high - mov r2,r1,lsl #25 - str r2,[r0,#0x4c] ;@ the X flag - bic r2,r1,#0xf3 - tst r1,#1 - orrne r2,r2,#2 - tst r1,#2 - orrne r2,r2,#1 - strb r2,[r0,#0x46] ;@ flags - bx lr - -CycloneGetSr: - ldrb r1,[r0,#0x46] ;@ flags - bic r2,r1,#0xf3 - tst r1,#1 - orrne r2,r2,#2 - tst r1,#2 - orrne r2,r2,#1 - ldr r1,[r0,#0x4c] ;@ the X flag - tst r1,#0x20000000 - orrne r2,r2,#0x10 - ldrb r1,[r0,#0x44] ;@ the SR high - orr r0,r2,r1,lsl #8 - bx lr - -CyclonePack: - stmfd sp!,{r4,r5,lr} - mov r4,r0 - mov r5,r1 - mov r3,#16 -;@ 0x00-0x3f: DA registers -c_pack_loop: - ldr r1,[r0],#4 - subs r3,r3,#1 - str r1,[r5],#4 - bne c_pack_loop -;@ 0x40: PC - ldr r0,[r4,#0x40] ;@ PC + Memory Base - ldr r1,[r4,#0x60] ;@ Memory base - sub r0,r0,r1 - str r0,[r5],#4 -;@ 0x44: SR - mov r0,r4 - bl CycloneGetSr - strh r0,[r5],#2 -;@ 0x46: IRQ level - ldrb r0,[r4,#0x47] - strb r0,[r5],#2 -;@ 0x48: other SP - ldr r0,[r4,#0x48] - str r0,[r5],#4 -;@ 0x4c: CPU state flags - ldr r0,[r4,#0x58] - str r0,[r5],#4 - ldmfd sp!,{r4,r5,pc} - -CycloneUnpack: - stmfd sp!,{r5,r7,lr} - mov r7,r0 - movs r5,r1 - beq c_unpack_do_pc - mov r3,#16 -;@ 0x00-0x3f: DA registers -c_unpack_loop: - ldr r1,[r5],#4 - subs r3,r3,#1 - str r1,[r0],#4 - bne c_unpack_loop -;@ 0x40: PC - ldr r0,[r5],#4 ;@ PC - str r0,[r7,#0x40] ;@ handle later -;@ 0x44: SR - ldrh r1,[r5],#2 - mov r0,r7 - bl CycloneSetSr -;@ 0x46: IRQ level - ldrb r0,[r5],#2 - strb r0,[r7,#0x47] -;@ 0x48: other SP - ldr r0,[r5],#4 - str r0,[r7,#0x48] -;@ 0x4c: CPU state flags - ldr r0,[r5],#4 - str r0,[r7,#0x58] -c_unpack_do_pc: - ldr r0,[r7,#0x40] ;@ unbased PC - mov r1,#0 - str r1,[r7,#0x60] ;@ Memory base - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - str r0,[r7,#0x40] ;@ PC + Memory Base - ldmfd sp!,{r5,r7,pc} - -CycloneFlushIrq: - ldr r1,[r0,#0x44] ;@ Get SR high T_S__III and irq level - mov r2,r1,lsr #24 ;@ Get IRQ level - cmp r2,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r2,r1 ;@ irq<=6: Is irq<=mask ? - movle r0,#0 - bxle lr ;@ no ints - - stmdb sp!,{r4,r5,r7,r8,r10,r11,lr} - mov r7,r0 - mov r0,r2 - ldrb r10,[r7,#0x46] ;@ r10 = Flags (NZCV) - mov r5,#0 - ldr r4,[r7,#0x40] ;@ r4 = Current PC + Memory Base - mov r10,r10,lsl #28 ;@ r10 = Flags 0xf0000000, cpsr format - adr r2,CycloneFlushIrqEnd - str r2,[r7,#0x98] ;@ set custom CycloneEnd - b CycloneDoInterrupt - -CycloneFlushIrqEnd: - rsb r0,r5,#0 - str r4,[r7,#0x40] ;@ Save Current PC + Memory Base - strb r10,[r7,#0x46] ;@ Save Flags (NZCV) - ldmia sp!,{r4,r5,r7,r8,r10,r11,lr} - bx lr - - -;@ DoInterrupt - r0=IRQ level -CycloneDoInterruptGoBack: - sub r4,r4,#2 -CycloneDoInterrupt: - bic r8,r8,#0xff000000 - orr r8,r8,r0,lsl #29 ;@ abuse r8 - ldr r2,[r7,#0x58] ;@ state flags - and r0,r0,#7 - orr r3,r0,#0x20 ;@ Supervisor mode + IRQ level - bic r2,r2,#3 ;@ clear stopped and trace states - orr r2,r2,#4 ;@ set activity bit: 'not processing instruction' - str r2,[r7,#0x58] - ldrb r6,[r7,#0x44] ;@ Get old SR high, abuse r6 - strb r3,[r7,#0x44] ;@ Put new SR high - - ldr r1,[r7,#0x60] ;@ Get Memory base - ldr r11,[r7,#0x3c] ;@ Get A7 - tst r6,#0x20 -;@ get our SP: - ldreq r2,[r7,#0x48] ;@ ...or OSP as our stack pointer - streq r11,[r7,#0x48] - moveq r11,r2 -;@ Push old PC onto stack - sub r0,r11,#4 ;@ Predecremented A7 - sub r1,r4,r1 ;@ r1 = Old PC - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push old SR: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r6,lsl #8 ;@ Include old SR high - sub r0,r11,#6 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - mov r11,r8,lsr #29 - mov r0,r11 -;@ call IrqCallback if it is defined - ldr r3,[r7,#0x8c] ;@ IrqCallback - add lr,pc,#4*3 - tst r3,r3 - strbeq r3,[r7,#0x47] ;@ just clear IRQ if there is no callback - mvneq r0,#0 ;@ and simulate -1 return - bxne r3 -;@ get IRQ vector address: - cmn r0,#1 ;@ returned -1? - addeq r0,r11,#0x18 ;@ use autovector then - cmn r0,#2 ;@ returned -2? - moveq r0,#0x18 ;@ use spurious interrupt then - mov r0,r0,lsl #2 ;@ get vector address - - ldr r11,[r7,#0x60] ;@ Get Memory base -;@ Read IRQ Vector: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 ;@ uninitialized int vector? - moveq r0,#0x3c - moveq lr,pc - ldreq pc,[r7,#0x70] ;@ Call read32(r0) handler - add lr,pc,#4 - add r0,r0,r11 ;@ r0 = Memory Base + New PC - ldr pc,[r7,#0x64] ;@ Call checkpc() - mov r4,r0 - - tst r4,#1 - bne ExceptionAddressError_r_prg_r4 - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#44 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -Exception: - ;@ Cause an Exception - Vector number in r0 - mov r11,lr ;@ Preserve ARM return address - bic r8,r8,#0xff000000 - orr r8,r8,r0,lsl #24 ;@ abuse r8 - ldr r6,[r7,#0x44] ;@ Get old SR high, abuse r6 - ldr r2,[r7,#0x58] ;@ state flags - and r3,r6,#0x27 ;@ clear trace and unused flags - orr r3,r3,#0x20 ;@ set supervisor mode - bic r2,r2,#3 ;@ clear stopped and trace states - str r2,[r7,#0x58] - strb r3,[r7,#0x44] ;@ Put new SR high - - ldr r0,[r7,#0x3c] ;@ Get A7 - tst r6,#0x20 -;@ get our SP: - ldreq r2,[r7,#0x48] ;@ ...or OSP as our stack pointer - streq r0,[r7,#0x48] - moveq r0,r2 -;@ Push old PC onto stack - ldr r1,[r7,#0x60] ;@ Get Memory base - sub r0,r0,#4 ;@ Predecremented A7 - str r0,[r7,#0x3c] ;@ Save A7 - sub r1,r4,r1 ;@ r1 = Old PC - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push old SR: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - ldr r0,[r7,#0x3c] ;@ A7 - orr r1,r1,r6,lsl #8 ;@ Include SR high - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ Read Exception Vector: - mov r0,r8,lsr #24 - mov r0,r0,lsl #2 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r3,[r7,#0x60] ;@ Get Memory base - add lr,pc,#4 - add r0,r0,r3 ;@ r0 = Memory Base + New PC - ldr pc,[r7,#0x64] ;@ Call checkpc() - mov r4,r0 - - tst r4,#1 - bne ExceptionAddressError_r_prg_r4 - ldr r6,[r7,#0x54] - bx r11 ;@ Return - -ExceptionAddressError_r_data: - ldr r1,[r7,#0x44] - mov r6,#0x11 - mov r11,r0 - tst r1,#0x20 - orrne r6,r6,#4 - b ExceptionAddressError - -ExceptionAddressError_r_prg: - ldr r1,[r7,#0x44] - mov r6,#0x12 - mov r11,r0 - tst r1,#0x20 - orrne r6,r6,#4 - b ExceptionAddressError - -ExceptionAddressError_w_data: - ldr r1,[r7,#0x44] - mov r6,#0x01 - mov r11,r0 - tst r1,#0x20 - orrne r6,r6,#4 - b ExceptionAddressError - -ExceptionAddressError_r_prg_r4: - ldr r1,[r7,#0x44] - ldr r3,[r7,#0x60] ;@ Get Memory base - mov r6,#0x12 - sub r11,r4,r3 - tst r1,#0x20 - orrne r6,r6,#4 - -ExceptionAddressError: -;@ r6 - info word (without instruction/not bit), r11 - faulting address - ldrb r0,[r7,#0x44] ;@ Get old SR high - ldr r2,[r7,#0x58] ;@ state flags - and r3,r0,#0x27 ;@ clear trace and unused flags - orr r3,r3,#0x20 ;@ set supervisor mode - strb r3,[r7,#0x44] ;@ Put new SR high - bic r2,r2,#3 ;@ clear stopped and trace states - tst r2,#4 - orrne r6,r6,#8 ;@ complete info word - orr r2,r2,#4 ;@ set activity bit: 'not processing instruction' - tst r2,#8 - orrne r2,r2,#0x10 ;@ HALT - orr r2,r2,#8 ;@ processing address error - str r2,[r7,#0x58] - movne r5,#0 - bne CycloneEndNoBack ;@ bye bye - and r10,r10,#0xf0000000 - orr r10,r10,r0,lsl #4 ;@ some preparations for SR push - - ldr r0,[r7,#0x3c] ;@ Get A7 - tst r10,#0x200 -;@ get our SP: - ldreq r2,[r7,#0x48] ;@ ...or OSP as our stack pointer - streq r0,[r7,#0x48] - moveq r0,r2 -;@ Push old PC onto stack - ldr r1,[r7,#0x60] ;@ Get Memory base - sub r0,r0,#4 ;@ Predecremented A7 - sub r1,r4,r1 ;@ r1 = Old PC - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push old SR: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,ror #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - ldr r0,[r7,#0x3c] ;@ A7 - and r10,r10,#0xf0000000 - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler -;@ Push IR: - ldr r0,[r7,#0x3c] ;@ A7 - mov r1,r8 - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler -;@ Push address: - ldr r0,[r7,#0x3c] ;@ A7 - mov r1,r11 - sub r0,r0,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push info word: - ldr r0,[r7,#0x3c] ;@ A7 - mov r1,r6 - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ Read Exception Vector: - mov r0,#0x0c - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r3,[r7,#0x60] ;@ Get Memory base - add lr,pc,#4 - add r0,r0,r3 ;@ r0 = Memory Base + New PC - ldr pc,[r7,#0x64] ;@ Call checkpc() - mov r4,r0 - - tst r4,#1 - bne ExceptionAddressError_r_prg_r4 - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#50 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -CycloneDoTraceWithChecks: - ldr r0,[r7,#0x58] - cmp r5,#0 - orr r0,r0,#2 ;@ go to trace mode - str r0,[r7,#0x58] - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - beq CycloneDoTrace - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - bgt CycloneDoInterruptGoBack - -CycloneDoTrace: - str r5,[r7,#0x9c] ;@ save cycles - ldr r1,[r7,#0x98] - mov r5,#0 - str r1,[r7,#0xa0] - adr r0,TraceEnd - str r0,[r7,#0x98] ;@ store TraceEnd as CycloneEnd hadler - ldr pc,[r6,r8,asl #2] ;@ Jump to opcode handler - -TraceEnd: - ldr r2,[r7,#0x58] - ldr r0,[r7,#0x9c] ;@ restore cycles - ldr r1,[r7,#0xa0] ;@ old CycloneEnd handler - mov r10,r10,lsl #28 - add r5,r0,r5 - str r1,[r7,#0x98] -;@ still tracing? - tst r2,#2 - beq TraceDisabled -;@ trace exception - ldr r1,[r7,#0x58] - mov r0,#9 - orr r1,r1,#4 ;@ set activity bit: 'not processing instruction' - str r1,[r7,#0x58] - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -TraceDisabled: - ldrh r8,[r4],#2 ;@ Fetch next opcode - cmp r5,#0 - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------------------------- Opcodes --------------------------- -Op____: ;@ Called if an opcode is not recognised - ldr r1,[r7,#0x58] - sub r4,r4,#2 - orr r1,r1,#4 ;@ set activity bit: 'not processing instruction' - str r1,[r7,#0x58] - mov r0,#4 - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -Op__al: ;@ Unrecognised a-line opcode - sub r4,r4,#2 - mov r0,#0x0a - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -Op__fl: ;@ Unrecognised f-line opcode - sub r4,r4,#2 - mov r0,#0x0b - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6702] beq 4 uses Op6702 ---------- -Op6702: - tst r10,#0x40000000 ;@ eq: Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -BccDontBranch8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6602] bne 4 uses Op6602 ---------- -Op6602: - tst r10,#0x40000000 ;@ ne: !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51c8] dbra d0, 3335 uses Op51c8 ---------- -Op51c8: -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ Dn.w is -1: -DbraMin1: - add r4,r4,#2 ;@ Skip branch offset - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a38] tst.b $3333.w uses Op4a38 ---------- -Op4a38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d040] add.w d0, d0 uses Opd040 ---------- -Opd040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a79] tst.w $33333333.l uses Op4a79 ---------- -Op4a79: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0240] andi.w #$3333, d0 uses Op0240 ---------- -Op0240: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2038] move.l $3333.w, d0 uses Op2038 ---------- -Op2038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0b8] cmp.l $3333.w, d0 uses Opb0b8 ---------- -Opb0b8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6002] bra 4 uses Op6002 ---------- -Op6002: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30c0] move.w d0, (a0)+ uses Op30c0 ---------- -Op30c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3028] move.w ($3333,a0), d0 uses Op3028 ---------- -Op3028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c40] cmpi.w #$3333, d0 uses Op0c40 ---------- -Op0c40: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c79] cmpi.w #$3333, $33333333.l uses Op0c79 ---------- -Op0c79: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e75] rts uses Op4e75 ---------- -Op4e75: -;@ Pop PC: - ldr r0,[r7,#0x3c] - add r1,r0,#4 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r1,[r7,#0x60] ;@ Get Memory base - add r0,r0,r1 ;@ Memory Base+PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e71] nop uses Op4e71 ---------- -Op4e71: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3000] move.w d0, d0 uses Op3000 ---------- -Op3000: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0839] btst #$33, $33333333.l uses Op0839 ---------- -Op0839: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [7000] moveq #$0, d0 uses Op7000 ---------- -Op7000: - movs r0,r8,asl #24 - and r1,r8,#0x0e00 - mov r0,r0,asr #24 ;@ Sign extended Quick value - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - str r0,[r7,r1,lsr #7] ;@ Store into Dn - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3040] movea.w d0, a0 uses Op3040 ---------- -Op3040: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrsh r1,[r7,r1] - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0838] btst #$33, $3333.w uses Op0838 ---------- -Op0838: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a39] tst.b $33333333.l uses Op4a39 ---------- -Op4a39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33d8] move.w (a0)+, $33333333.l uses Op33d8 ---------- -Op33d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6700] beq 3335 uses Op6700 ---------- -Op6700: - tst r10,#0x40000000 ;@ eq: Z - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -BccDontBranch16: - add r4,r4,#2 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b038] cmp.b $3333.w, d0 uses Opb038 ---------- -Opb038: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3039] move.w $33333333.l, d0 uses Op3039 ---------- -Op3039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4840] swap d0 uses Op4840 ---------- -Op4840: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - movs r1,r0,ror #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6102] bsr 4 uses Op6102 ---------- -Op6102: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC -;@ Bsr - remember old PC - ldr r12,[r7,#0x60] ;@ Get Memory base - ldr r2,[r7,#0x3c] - sub r1,r4,r12 ;@ r1 = Old PC - -;@ Push r1 onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6100] bsr 3335 uses Op6100 ---------- -Op6100: - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC -;@ Bsr - remember old PC - ldr r12,[r7,#0x60] ;@ Get Memory base - ldr r2,[r7,#0x3c] - sub r1,r4,r12 ;@ r1 = Old PC - add r1,r1,#2 - -;@ Push r1 onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e40] addq.w #7, d0 uses Op5e40 ---------- -Op5e40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1039] move.b $33333333.l, d0 uses Op1039 ---------- -Op1039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20c0] move.l d0, (a0)+ uses Op20c0 ---------- -Op20c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1018] move.b (a0)+, d0 uses Op1018 ---------- -Op1018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30d0] move.w (a0), (a0)+ uses Op30d0 ---------- -Op30d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3080] move.w d0, (a0) uses Op3080 ---------- -Op3080: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3018] move.w (a0)+, d0 uses Op3018 ---------- -Op3018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c040] and.w d0, d0 uses Opc040 ---------- -Opc040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3180] move.w d0, ($33,a0,d3.w*2) uses Op3180 ---------- -Op3180: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1198] move.b (a0)+, ($33,a0,d3.w*2) uses Op1198 ---------- -Op1198: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6502] bcs 4 uses Op6502 ---------- -Op6502: - tst r10,#0x20000000 ;@ cs: C - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6500] bcs 3335 uses Op6500 ---------- -Op6500: - tst r10,#0x20000000 ;@ cs: C - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6402] bcc 4 uses Op6402 ---------- -Op6402: - tst r10,#0x20000000 ;@ cc: !C - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6a02] bpl 4 uses Op6a02 ---------- -Op6a02: - tst r10,r10 ;@ pl: !N - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41f0] lea ($33,a0,d3.w*2), a0 uses Op41f0 ---------- -Op41f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r1: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r1,r2,r3 ;@ r1=Disp+An+Rn -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a28] tst.b ($3333,a0) uses Op4a28 ---------- -Op4a28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0828] btst #$33, ($3333,a0) uses Op0828 ---------- -Op0828: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0640] addi.w #$3333, d0 uses Op0640 ---------- -Op0640: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10c0] move.b d0, (a0)+ uses Op10c0 ---------- -Op10c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10d8] move.b (a0)+, (a0)+ uses Op10d8 ---------- -Op10d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0000] ori.b #$33, d0 uses Op0000 ---------- -Op0000: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0010] ori.b #$33, (a0) uses Op0010 ---------- -Op0010: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0018] ori.b #$33, (a0)+ uses Op0018 ---------- -Op0018: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [001f] ori.b #$33, (a7)+ uses Op001f ---------- -Op001f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0020] ori.b #$33, -(a0) uses Op0020 ---------- -Op0020: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0027] ori.b #$33, -(a7) uses Op0027 ---------- -Op0027: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0028] ori.b #$33, ($3333,a0) uses Op0028 ---------- -Op0028: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0030] ori.b #$33, ($33,a0,d3.w*2) uses Op0030 ---------- -Op0030: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0038] ori.b #$33, $3333.w uses Op0038 ---------- -Op0038: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0039] ori.b #$33, $33333333.l uses Op0039 ---------- -Op0039: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [003c] ori.b #$33, ccr uses Op003c ---------- -Op003c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - orr r10,r10,r0,lsl #28 - orr r2,r2,r0,lsl #25 ;@ X bit - str r2,[r7,#0x4c] ;@ Save X bit - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0040] ori.w #$3333, d0 uses Op0040 ---------- -Op0040: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0050] ori.w #$3333, (a0) uses Op0050 ---------- -Op0050: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0058] ori.w #$3333, (a0)+ uses Op0058 ---------- -Op0058: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0060] ori.w #$3333, -(a0) uses Op0060 ---------- -Op0060: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0068] ori.w #$3333, ($3333,a0) uses Op0068 ---------- -Op0068: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0070] ori.w #$3333, ($33,a0,d3.w*2) uses Op0070 ---------- -Op0070: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0078] ori.w #$3333, $3333.w uses Op0078 ---------- -Op0078: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0079] ori.w #$3333, $33333333.l uses Op0079 ---------- -Op0079: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [007c] ori.w #$3333, sr uses Op007c ---------- -Op007c: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - orr r10,r10,r0,lsl #28 - orr r2,r2,r0,lsl #25 ;@ X bit - orr r1,r11,r0,lsr #8 - and r1,r1,#0xa7 ;@ mask-out unused bits - str r2,[r7,#0x4c] ;@ Save X bit - strb r1,[r7,#0x44] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0080] ori.l #$33333333, d0 uses Op0080 ---------- -Op0080: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0090] ori.l #$33333333, (a0) uses Op0090 ---------- -Op0090: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0098] ori.l #$33333333, (a0)+ uses Op0098 ---------- -Op0098: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00a0] ori.l #$33333333, -(a0) uses Op00a0 ---------- -Op00a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00a8] ori.l #$33333333, ($3333,a0) uses Op00a8 ---------- -Op00a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00b0] ori.l #$33333333, ($33,a0,d3.w*2) uses Op00b0 ---------- -Op00b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00b8] ori.l #$33333333, $3333.w uses Op00b8 ---------- -Op00b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00b9] ori.l #$33333333, $33333333.l uses Op00b9 ---------- -Op00b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0100] btst d0, d0 uses Op0100 ---------- -Op0100: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0108] movep.w ($3333,a0), d0 uses Op0108 ---------- -Op0108: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r6) into r11: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - - add r0,r6,#2 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r1,r11,r1,lsr #8 ;@ second byte -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0110] btst d0, (a0) uses Op0110 ---------- -Op0110: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0118] btst d0, (a0)+ uses Op0118 ---------- -Op0118: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [011f] btst d0, (a7)+ uses Op011f ---------- -Op011f: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0120] btst d0, -(a0) uses Op0120 ---------- -Op0120: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0127] btst d0, -(a7) uses Op0127 ---------- -Op0127: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0128] btst d0, ($3333,a0) uses Op0128 ---------- -Op0128: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0130] btst d0, ($33,a0,d3.w*2) uses Op0130 ---------- -Op0130: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0138] btst d0, $3333.w uses Op0138 ---------- -Op0138: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0139] btst d0, $33333333.l uses Op0139 ---------- -Op0139: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [013a] btst d0, ($3333,pc); =3335 uses Op013a ---------- -Op013a: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [013b] btst d0, ($33,pc,d3.w*2); =35 uses Op013b ---------- -Op013b: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [013c] btst d0, #$33 uses Op013c ---------- -Op013c: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0140] bchg d0, d0 uses Op0140 ---------- -Op0140: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0148] movep.l ($3333,a0), d0 uses Op0148 ---------- -Op0148: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r6) into r11: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - - add r0,r6,#2 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r11,r11,r1,lsr #8 ;@ second byte - add r0,r6,#4 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r11,r11,r1,lsr #16 ;@ third byte - add r0,r6,#6 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r1,r11,r1,lsr #24 ;@ fourth byte -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0150] bchg d0, (a0) uses Op0150 ---------- -Op0150: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0158] bchg d0, (a0)+ uses Op0158 ---------- -Op0158: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [015f] bchg d0, (a7)+ uses Op015f ---------- -Op015f: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0160] bchg d0, -(a0) uses Op0160 ---------- -Op0160: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0167] bchg d0, -(a7) uses Op0167 ---------- -Op0167: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0168] bchg d0, ($3333,a0) uses Op0168 ---------- -Op0168: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0170] bchg d0, ($33,a0,d3.w*2) uses Op0170 ---------- -Op0170: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0178] bchg d0, $3333.w uses Op0178 ---------- -Op0178: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0179] bchg d0, $33333333.l uses Op0179 ---------- -Op0179: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0180] bclr d0, d0 uses Op0180 ---------- -Op0180: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0188] movep.w d0, ($3333,a0) uses Op0188 ---------- -Op0188: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset - mov r0,r8 - mov r1,r11,lsr #8 ;@ first or third byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#2 - and r1,r11,#0xff -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0190] bclr d0, (a0) uses Op0190 ---------- -Op0190: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0198] bclr d0, (a0)+ uses Op0198 ---------- -Op0198: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [019f] bclr d0, (a7)+ uses Op019f ---------- -Op019f: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01a0] bclr d0, -(a0) uses Op01a0 ---------- -Op01a0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01a7] bclr d0, -(a7) uses Op01a7 ---------- -Op01a7: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01a8] bclr d0, ($3333,a0) uses Op01a8 ---------- -Op01a8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01b0] bclr d0, ($33,a0,d3.w*2) uses Op01b0 ---------- -Op01b0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01b8] bclr d0, $3333.w uses Op01b8 ---------- -Op01b8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01b9] bclr d0, $33333333.l uses Op01b9 ---------- -Op01b9: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01c0] bset d0, d0 uses Op01c0 ---------- -Op01c0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01c8] movep.l d0, ($3333,a0) uses Op01c8 ---------- -Op01c8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset - mov r1,r11,lsr #24 ;@ first byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#2 - mov r1,r11,lsr #16 ;@ second byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#4 - mov r1,r11,lsr #8 ;@ first or third byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#6 - and r1,r11,#0xff -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01d0] bset d0, (a0) uses Op01d0 ---------- -Op01d0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01d8] bset d0, (a0)+ uses Op01d8 ---------- -Op01d8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01df] bset d0, (a7)+ uses Op01df ---------- -Op01df: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01e0] bset d0, -(a0) uses Op01e0 ---------- -Op01e0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01e7] bset d0, -(a7) uses Op01e7 ---------- -Op01e7: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01e8] bset d0, ($3333,a0) uses Op01e8 ---------- -Op01e8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01f0] bset d0, ($33,a0,d3.w*2) uses Op01f0 ---------- -Op01f0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01f8] bset d0, $3333.w uses Op01f8 ---------- -Op01f8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01f9] bset d0, $33333333.l uses Op01f9 ---------- -Op01f9: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0200] andi.b #$33, d0 uses Op0200 ---------- -Op0200: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0210] andi.b #$33, (a0) uses Op0210 ---------- -Op0210: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0218] andi.b #$33, (a0)+ uses Op0218 ---------- -Op0218: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [021f] andi.b #$33, (a7)+ uses Op021f ---------- -Op021f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0220] andi.b #$33, -(a0) uses Op0220 ---------- -Op0220: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0227] andi.b #$33, -(a7) uses Op0227 ---------- -Op0227: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0228] andi.b #$33, ($3333,a0) uses Op0228 ---------- -Op0228: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0230] andi.b #$33, ($33,a0,d3.w*2) uses Op0230 ---------- -Op0230: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0238] andi.b #$33, $3333.w uses Op0238 ---------- -Op0238: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0239] andi.b #$33, $33333333.l uses Op0239 ---------- -Op0239: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [023c] andi.b #$33, ccr uses Op023c ---------- -Op023c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - and r10,r10,r0,lsl #28 - and r2,r2,r0,lsl #25 ;@ X bit - str r2,[r7,#0x4c] ;@ Save X bit - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0250] andi.w #$3333, (a0) uses Op0250 ---------- -Op0250: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0258] andi.w #$3333, (a0)+ uses Op0258 ---------- -Op0258: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0260] andi.w #$3333, -(a0) uses Op0260 ---------- -Op0260: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0268] andi.w #$3333, ($3333,a0) uses Op0268 ---------- -Op0268: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0270] andi.w #$3333, ($33,a0,d3.w*2) uses Op0270 ---------- -Op0270: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0278] andi.w #$3333, $3333.w uses Op0278 ---------- -Op0278: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0279] andi.w #$3333, $33333333.l uses Op0279 ---------- -Op0279: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [027c] andi.w #$3333, sr uses Op027c ---------- -Op027c: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - and r10,r10,r0,lsl #28 - and r2,r2,r0,lsl #25 ;@ X bit - and r1,r11,r0,lsr #8 - str r2,[r7,#0x4c] ;@ Save X bit - strb r1,[r7,#0x44] - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap027c - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap027c: - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ble CycloneEnd -;@ CheckInterrupt: - ldr r1,[r7,#0x44] - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [0280] andi.l #$33333333, d0 uses Op0280 ---------- -Op0280: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0290] andi.l #$33333333, (a0) uses Op0290 ---------- -Op0290: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0298] andi.l #$33333333, (a0)+ uses Op0298 ---------- -Op0298: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02a0] andi.l #$33333333, -(a0) uses Op02a0 ---------- -Op02a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02a8] andi.l #$33333333, ($3333,a0) uses Op02a8 ---------- -Op02a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02b0] andi.l #$33333333, ($33,a0,d3.w*2) uses Op02b0 ---------- -Op02b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02b8] andi.l #$33333333, $3333.w uses Op02b8 ---------- -Op02b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02b9] andi.l #$33333333, $33333333.l uses Op02b9 ---------- -Op02b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0400] subi.b #$33, d0 uses Op0400 ---------- -Op0400: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0410] subi.b #$33, (a0) uses Op0410 ---------- -Op0410: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0418] subi.b #$33, (a0)+ uses Op0418 ---------- -Op0418: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [041f] subi.b #$33, (a7)+ uses Op041f ---------- -Op041f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0420] subi.b #$33, -(a0) uses Op0420 ---------- -Op0420: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0427] subi.b #$33, -(a7) uses Op0427 ---------- -Op0427: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0428] subi.b #$33, ($3333,a0) uses Op0428 ---------- -Op0428: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0430] subi.b #$33, ($33,a0,d3.w*2) uses Op0430 ---------- -Op0430: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0438] subi.b #$33, $3333.w uses Op0438 ---------- -Op0438: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0439] subi.b #$33, $33333333.l uses Op0439 ---------- -Op0439: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0440] subi.w #$3333, d0 uses Op0440 ---------- -Op0440: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0450] subi.w #$3333, (a0) uses Op0450 ---------- -Op0450: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0458] subi.w #$3333, (a0)+ uses Op0458 ---------- -Op0458: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0460] subi.w #$3333, -(a0) uses Op0460 ---------- -Op0460: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0468] subi.w #$3333, ($3333,a0) uses Op0468 ---------- -Op0468: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0470] subi.w #$3333, ($33,a0,d3.w*2) uses Op0470 ---------- -Op0470: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0478] subi.w #$3333, $3333.w uses Op0478 ---------- -Op0478: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0479] subi.w #$3333, $33333333.l uses Op0479 ---------- -Op0479: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0480] subi.l #$33333333, d0 uses Op0480 ---------- -Op0480: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0490] subi.l #$33333333, (a0) uses Op0490 ---------- -Op0490: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0498] subi.l #$33333333, (a0)+ uses Op0498 ---------- -Op0498: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04a0] subi.l #$33333333, -(a0) uses Op04a0 ---------- -Op04a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04a8] subi.l #$33333333, ($3333,a0) uses Op04a8 ---------- -Op04a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04b0] subi.l #$33333333, ($33,a0,d3.w*2) uses Op04b0 ---------- -Op04b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04b8] subi.l #$33333333, $3333.w uses Op04b8 ---------- -Op04b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04b9] subi.l #$33333333, $33333333.l uses Op04b9 ---------- -Op04b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0600] addi.b #$33, d0 uses Op0600 ---------- -Op0600: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0610] addi.b #$33, (a0) uses Op0610 ---------- -Op0610: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0618] addi.b #$33, (a0)+ uses Op0618 ---------- -Op0618: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [061f] addi.b #$33, (a7)+ uses Op061f ---------- -Op061f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0620] addi.b #$33, -(a0) uses Op0620 ---------- -Op0620: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0627] addi.b #$33, -(a7) uses Op0627 ---------- -Op0627: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0628] addi.b #$33, ($3333,a0) uses Op0628 ---------- -Op0628: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0630] addi.b #$33, ($33,a0,d3.w*2) uses Op0630 ---------- -Op0630: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0638] addi.b #$33, $3333.w uses Op0638 ---------- -Op0638: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0639] addi.b #$33, $33333333.l uses Op0639 ---------- -Op0639: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0650] addi.w #$3333, (a0) uses Op0650 ---------- -Op0650: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0658] addi.w #$3333, (a0)+ uses Op0658 ---------- -Op0658: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0660] addi.w #$3333, -(a0) uses Op0660 ---------- -Op0660: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0668] addi.w #$3333, ($3333,a0) uses Op0668 ---------- -Op0668: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0670] addi.w #$3333, ($33,a0,d3.w*2) uses Op0670 ---------- -Op0670: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0678] addi.w #$3333, $3333.w uses Op0678 ---------- -Op0678: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0679] addi.w #$3333, $33333333.l uses Op0679 ---------- -Op0679: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0680] addi.l #$33333333, d0 uses Op0680 ---------- -Op0680: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0690] addi.l #$33333333, (a0) uses Op0690 ---------- -Op0690: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0698] addi.l #$33333333, (a0)+ uses Op0698 ---------- -Op0698: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06a0] addi.l #$33333333, -(a0) uses Op06a0 ---------- -Op06a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06a8] addi.l #$33333333, ($3333,a0) uses Op06a8 ---------- -Op06a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06b0] addi.l #$33333333, ($33,a0,d3.w*2) uses Op06b0 ---------- -Op06b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06b8] addi.l #$33333333, $3333.w uses Op06b8 ---------- -Op06b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06b9] addi.l #$33333333, $33333333.l uses Op06b9 ---------- -Op06b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0800] btst #$33, d0 uses Op0800 ---------- -Op0800: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0810] btst #$33, (a0) uses Op0810 ---------- -Op0810: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0818] btst #$33, (a0)+ uses Op0818 ---------- -Op0818: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [081f] btst #$33, (a7)+ uses Op081f ---------- -Op081f: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0820] btst #$33, -(a0) uses Op0820 ---------- -Op0820: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0827] btst #$33, -(a7) uses Op0827 ---------- -Op0827: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0830] btst #$33, ($33,a0,d3.w*2) uses Op0830 ---------- -Op0830: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [083a] btst #$33, ($3333,pc); =3337 uses Op083a ---------- -Op083a: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [083b] btst #$33, ($33,pc,d3.w*2); =37 uses Op083b ---------- -Op083b: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0840] bchg #$33, d0 uses Op0840 ---------- -Op0840: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0850] bchg #$33, (a0) uses Op0850 ---------- -Op0850: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0858] bchg #$33, (a0)+ uses Op0858 ---------- -Op0858: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [085f] bchg #$33, (a7)+ uses Op085f ---------- -Op085f: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0860] bchg #$33, -(a0) uses Op0860 ---------- -Op0860: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0867] bchg #$33, -(a7) uses Op0867 ---------- -Op0867: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0868] bchg #$33, ($3333,a0) uses Op0868 ---------- -Op0868: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0870] bchg #$33, ($33,a0,d3.w*2) uses Op0870 ---------- -Op0870: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0878] bchg #$33, $3333.w uses Op0878 ---------- -Op0878: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0879] bchg #$33, $33333333.l uses Op0879 ---------- -Op0879: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0880] bclr #$33, d0 uses Op0880 ---------- -Op0880: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0890] bclr #$33, (a0) uses Op0890 ---------- -Op0890: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0898] bclr #$33, (a0)+ uses Op0898 ---------- -Op0898: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [089f] bclr #$33, (a7)+ uses Op089f ---------- -Op089f: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08a0] bclr #$33, -(a0) uses Op08a0 ---------- -Op08a0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08a7] bclr #$33, -(a7) uses Op08a7 ---------- -Op08a7: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08a8] bclr #$33, ($3333,a0) uses Op08a8 ---------- -Op08a8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08b0] bclr #$33, ($33,a0,d3.w*2) uses Op08b0 ---------- -Op08b0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08b8] bclr #$33, $3333.w uses Op08b8 ---------- -Op08b8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08b9] bclr #$33, $33333333.l uses Op08b9 ---------- -Op08b9: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08c0] bset #$33, d0 uses Op08c0 ---------- -Op08c0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08d0] bset #$33, (a0) uses Op08d0 ---------- -Op08d0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08d8] bset #$33, (a0)+ uses Op08d8 ---------- -Op08d8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08df] bset #$33, (a7)+ uses Op08df ---------- -Op08df: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08e0] bset #$33, -(a0) uses Op08e0 ---------- -Op08e0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08e7] bset #$33, -(a7) uses Op08e7 ---------- -Op08e7: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08e8] bset #$33, ($3333,a0) uses Op08e8 ---------- -Op08e8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08f0] bset #$33, ($33,a0,d3.w*2) uses Op08f0 ---------- -Op08f0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08f8] bset #$33, $3333.w uses Op08f8 ---------- -Op08f8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08f9] bset #$33, $33333333.l uses Op08f9 ---------- -Op08f9: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a00] eori.b #$33, d0 uses Op0a00 ---------- -Op0a00: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a10] eori.b #$33, (a0) uses Op0a10 ---------- -Op0a10: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a18] eori.b #$33, (a0)+ uses Op0a18 ---------- -Op0a18: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a1f] eori.b #$33, (a7)+ uses Op0a1f ---------- -Op0a1f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a20] eori.b #$33, -(a0) uses Op0a20 ---------- -Op0a20: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a27] eori.b #$33, -(a7) uses Op0a27 ---------- -Op0a27: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a28] eori.b #$33, ($3333,a0) uses Op0a28 ---------- -Op0a28: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a30] eori.b #$33, ($33,a0,d3.w*2) uses Op0a30 ---------- -Op0a30: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a38] eori.b #$33, $3333.w uses Op0a38 ---------- -Op0a38: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a39] eori.b #$33, $33333333.l uses Op0a39 ---------- -Op0a39: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a3c] eori.b #$33, ccr uses Op0a3c ---------- -Op0a3c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - eor r10,r10,r0,lsl #28 - eor r2,r2,r0,lsl #25 ;@ X bit - str r2,[r7,#0x4c] ;@ Save X bit - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a40] eori.w #$3333, d0 uses Op0a40 ---------- -Op0a40: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a50] eori.w #$3333, (a0) uses Op0a50 ---------- -Op0a50: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a58] eori.w #$3333, (a0)+ uses Op0a58 ---------- -Op0a58: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a60] eori.w #$3333, -(a0) uses Op0a60 ---------- -Op0a60: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a68] eori.w #$3333, ($3333,a0) uses Op0a68 ---------- -Op0a68: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a70] eori.w #$3333, ($33,a0,d3.w*2) uses Op0a70 ---------- -Op0a70: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a78] eori.w #$3333, $3333.w uses Op0a78 ---------- -Op0a78: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a79] eori.w #$3333, $33333333.l uses Op0a79 ---------- -Op0a79: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a7c] eori.w #$3333, sr uses Op0a7c ---------- -Op0a7c: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - eor r10,r10,r0,lsl #28 - eor r2,r2,r0,lsl #25 ;@ X bit - eor r1,r11,r0,lsr #8 - and r1,r1,#0xa7 ;@ mask-out unused bits - str r2,[r7,#0x4c] ;@ Save X bit - strb r1,[r7,#0x44] - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap0a7c - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap0a7c: - - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [0a80] eori.l #$33333333, d0 uses Op0a80 ---------- -Op0a80: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a90] eori.l #$33333333, (a0) uses Op0a90 ---------- -Op0a90: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a98] eori.l #$33333333, (a0)+ uses Op0a98 ---------- -Op0a98: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0aa0] eori.l #$33333333, -(a0) uses Op0aa0 ---------- -Op0aa0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0aa8] eori.l #$33333333, ($3333,a0) uses Op0aa8 ---------- -Op0aa8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ab0] eori.l #$33333333, ($33,a0,d3.w*2) uses Op0ab0 ---------- -Op0ab0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ab8] eori.l #$33333333, $3333.w uses Op0ab8 ---------- -Op0ab8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ab9] eori.l #$33333333, $33333333.l uses Op0ab9 ---------- -Op0ab9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c00] cmpi.b #$33, d0 uses Op0c00 ---------- -Op0c00: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c10] cmpi.b #$33, (a0) uses Op0c10 ---------- -Op0c10: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c18] cmpi.b #$33, (a0)+ uses Op0c18 ---------- -Op0c18: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c1f] cmpi.b #$33, (a7)+ uses Op0c1f ---------- -Op0c1f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c20] cmpi.b #$33, -(a0) uses Op0c20 ---------- -Op0c20: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c27] cmpi.b #$33, -(a7) uses Op0c27 ---------- -Op0c27: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c28] cmpi.b #$33, ($3333,a0) uses Op0c28 ---------- -Op0c28: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c30] cmpi.b #$33, ($33,a0,d3.w*2) uses Op0c30 ---------- -Op0c30: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c38] cmpi.b #$33, $3333.w uses Op0c38 ---------- -Op0c38: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c39] cmpi.b #$33, $33333333.l uses Op0c39 ---------- -Op0c39: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c50] cmpi.w #$3333, (a0) uses Op0c50 ---------- -Op0c50: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c58] cmpi.w #$3333, (a0)+ uses Op0c58 ---------- -Op0c58: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c60] cmpi.w #$3333, -(a0) uses Op0c60 ---------- -Op0c60: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c68] cmpi.w #$3333, ($3333,a0) uses Op0c68 ---------- -Op0c68: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c70] cmpi.w #$3333, ($33,a0,d3.w*2) uses Op0c70 ---------- -Op0c70: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c78] cmpi.w #$3333, $3333.w uses Op0c78 ---------- -Op0c78: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c80] cmpi.l #$33333333, d0 uses Op0c80 ---------- -Op0c80: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c90] cmpi.l #$33333333, (a0) uses Op0c90 ---------- -Op0c90: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c98] cmpi.l #$33333333, (a0)+ uses Op0c98 ---------- -Op0c98: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ca0] cmpi.l #$33333333, -(a0) uses Op0ca0 ---------- -Op0ca0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ca8] cmpi.l #$33333333, ($3333,a0) uses Op0ca8 ---------- -Op0ca8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0cb0] cmpi.l #$33333333, ($33,a0,d3.w*2) uses Op0cb0 ---------- -Op0cb0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0cb8] cmpi.l #$33333333, $3333.w uses Op0cb8 ---------- -Op0cb8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0cb9] cmpi.l #$33333333, $33333333.l uses Op0cb9 ---------- -Op0cb9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1000] move.b d0, d0 uses Op1000 ---------- -Op1000: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1010] move.b (a0), d0 uses Op1010 ---------- -Op1010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [101f] move.b (a7)+, d0 uses Op101f ---------- -Op101f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1020] move.b -(a0), d0 uses Op1020 ---------- -Op1020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1027] move.b -(a7), d0 uses Op1027 ---------- -Op1027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1028] move.b ($3333,a0), d0 uses Op1028 ---------- -Op1028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1030] move.b ($33,a0,d3.w*2), d0 uses Op1030 ---------- -Op1030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1038] move.b $3333.w, d0 uses Op1038 ---------- -Op1038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [103a] move.b ($3333,pc), d0; =3335 uses Op103a ---------- -Op103a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [103b] move.b ($33,pc,d3.w*2), d0; =35 uses Op103b ---------- -Op103b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [103c] move.b #$33, d0 uses Op103c ---------- -Op103c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1080] move.b d0, (a0) uses Op1080 ---------- -Op1080: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1090] move.b (a0), (a0) uses Op1090 ---------- -Op1090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1098] move.b (a0)+, (a0) uses Op1098 ---------- -Op1098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [109f] move.b (a7)+, (a0) uses Op109f ---------- -Op109f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10a0] move.b -(a0), (a0) uses Op10a0 ---------- -Op10a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10a7] move.b -(a7), (a0) uses Op10a7 ---------- -Op10a7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10a8] move.b ($3333,a0), (a0) uses Op10a8 ---------- -Op10a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10b0] move.b ($33,a0,d3.w*2), (a0) uses Op10b0 ---------- -Op10b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10b8] move.b $3333.w, (a0) uses Op10b8 ---------- -Op10b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10b9] move.b $33333333.l, (a0) uses Op10b9 ---------- -Op10b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10ba] move.b ($3333,pc), (a0); =3335 uses Op10ba ---------- -Op10ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10bb] move.b ($33,pc,d3.w*2), (a0); =35 uses Op10bb ---------- -Op10bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10bc] move.b #$33, (a0) uses Op10bc ---------- -Op10bc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10d0] move.b (a0), (a0)+ uses Op10d0 ---------- -Op10d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10df] move.b (a7)+, (a0)+ uses Op10df ---------- -Op10df: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10e0] move.b -(a0), (a0)+ uses Op10e0 ---------- -Op10e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10e7] move.b -(a7), (a0)+ uses Op10e7 ---------- -Op10e7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10e8] move.b ($3333,a0), (a0)+ uses Op10e8 ---------- -Op10e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10f0] move.b ($33,a0,d3.w*2), (a0)+ uses Op10f0 ---------- -Op10f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10f8] move.b $3333.w, (a0)+ uses Op10f8 ---------- -Op10f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10f9] move.b $33333333.l, (a0)+ uses Op10f9 ---------- -Op10f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10fa] move.b ($3333,pc), (a0)+; =3335 uses Op10fa ---------- -Op10fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10fb] move.b ($33,pc,d3.w*2), (a0)+; =35 uses Op10fb ---------- -Op10fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10fc] move.b #$33, (a0)+ uses Op10fc ---------- -Op10fc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1100] move.b d0, -(a0) uses Op1100 ---------- -Op1100: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1110] move.b (a0), -(a0) uses Op1110 ---------- -Op1110: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1118] move.b (a0)+, -(a0) uses Op1118 ---------- -Op1118: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [111f] move.b (a7)+, -(a0) uses Op111f ---------- -Op111f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1120] move.b -(a0), -(a0) uses Op1120 ---------- -Op1120: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1127] move.b -(a7), -(a0) uses Op1127 ---------- -Op1127: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1128] move.b ($3333,a0), -(a0) uses Op1128 ---------- -Op1128: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1130] move.b ($33,a0,d3.w*2), -(a0) uses Op1130 ---------- -Op1130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1138] move.b $3333.w, -(a0) uses Op1138 ---------- -Op1138: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1139] move.b $33333333.l, -(a0) uses Op1139 ---------- -Op1139: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [113a] move.b ($3333,pc), -(a0); =3335 uses Op113a ---------- -Op113a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [113b] move.b ($33,pc,d3.w*2), -(a0); =35 uses Op113b ---------- -Op113b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [113c] move.b #$33, -(a0) uses Op113c ---------- -Op113c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1140] move.b d0, ($3333,a0) uses Op1140 ---------- -Op1140: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1150] move.b (a0), ($3333,a0) uses Op1150 ---------- -Op1150: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1158] move.b (a0)+, ($3333,a0) uses Op1158 ---------- -Op1158: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [115f] move.b (a7)+, ($3333,a0) uses Op115f ---------- -Op115f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1160] move.b -(a0), ($3333,a0) uses Op1160 ---------- -Op1160: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1167] move.b -(a7), ($3333,a0) uses Op1167 ---------- -Op1167: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1168] move.b ($3333,a0), ($3333,a0) uses Op1168 ---------- -Op1168: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1170] move.b ($33,a0,d3.w*2), ($3333,a0) uses Op1170 ---------- -Op1170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1178] move.b $3333.w, ($3333,a0) uses Op1178 ---------- -Op1178: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1179] move.b $33333333.l, ($3333,a0) uses Op1179 ---------- -Op1179: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [117a] move.b ($3333,pc), ($3333,a0); =3335 uses Op117a ---------- -Op117a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [117b] move.b ($33,pc,d3.w*2), ($3333,a0); =35 uses Op117b ---------- -Op117b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [117c] move.b #$33, ($3333,a0) uses Op117c ---------- -Op117c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1180] move.b d0, ($33,a0,d3.w*2) uses Op1180 ---------- -Op1180: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1190] move.b (a0), ($33,a0,d3.w*2) uses Op1190 ---------- -Op1190: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [119f] move.b (a7)+, ($33,a0,d3.w*2) uses Op119f ---------- -Op119f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11a0] move.b -(a0), ($33,a0,d3.w*2) uses Op11a0 ---------- -Op11a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11a7] move.b -(a7), ($33,a0,d3.w*2) uses Op11a7 ---------- -Op11a7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11a8] move.b ($3333,a0), ($33,a0,d3.w*2) uses Op11a8 ---------- -Op11a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11b0] move.b ($33,a0,d3.w*2), ($33,a0,d3.w*2) uses Op11b0 ---------- -Op11b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11b8] move.b $3333.w, ($33,a0,d3.w*2) uses Op11b8 ---------- -Op11b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11b9] move.b $33333333.l, ($33,a0,d3.w*2) uses Op11b9 ---------- -Op11b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11ba] move.b ($3333,pc), ($33,a0,d3.w*2); =3335 uses Op11ba ---------- -Op11ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11bb] move.b ($33,pc,d3.w*2), ($33,a0,d3.w*2); =35 uses Op11bb ---------- -Op11bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11bc] move.b #$33, ($33,a0,d3.w*2) uses Op11bc ---------- -Op11bc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11c0] move.b d0, $3333.w uses Op11c0 ---------- -Op11c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11d0] move.b (a0), $3333.w uses Op11d0 ---------- -Op11d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11d8] move.b (a0)+, $3333.w uses Op11d8 ---------- -Op11d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11df] move.b (a7)+, $3333.w uses Op11df ---------- -Op11df: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11e0] move.b -(a0), $3333.w uses Op11e0 ---------- -Op11e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11e7] move.b -(a7), $3333.w uses Op11e7 ---------- -Op11e7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11e8] move.b ($3333,a0), $3333.w uses Op11e8 ---------- -Op11e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11f0] move.b ($33,a0,d3.w*2), $3333.w uses Op11f0 ---------- -Op11f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11f8] move.b $3333.w, $3333.w uses Op11f8 ---------- -Op11f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11f9] move.b $33333333.l, $3333.w uses Op11f9 ---------- -Op11f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11fa] move.b ($3333,pc), $3333.w; =3335 uses Op11fa ---------- -Op11fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11fb] move.b ($33,pc,d3.w*2), $3333.w; =35 uses Op11fb ---------- -Op11fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11fc] move.b #$33, $3333.w uses Op11fc ---------- -Op11fc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13c0] move.b d0, $33333333.l uses Op13c0 ---------- -Op13c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13d0] move.b (a0), $33333333.l uses Op13d0 ---------- -Op13d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13d8] move.b (a0)+, $33333333.l uses Op13d8 ---------- -Op13d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13df] move.b (a7)+, $33333333.l uses Op13df ---------- -Op13df: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13e0] move.b -(a0), $33333333.l uses Op13e0 ---------- -Op13e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13e7] move.b -(a7), $33333333.l uses Op13e7 ---------- -Op13e7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13e8] move.b ($3333,a0), $33333333.l uses Op13e8 ---------- -Op13e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13f0] move.b ($33,a0,d3.w*2), $33333333.l uses Op13f0 ---------- -Op13f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13f8] move.b $3333.w, $33333333.l uses Op13f8 ---------- -Op13f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13f9] move.b $33333333.l, $33333333.l uses Op13f9 ---------- -Op13f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13fa] move.b ($3333,pc), $33333333.l; =3335 uses Op13fa ---------- -Op13fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13fb] move.b ($33,pc,d3.w*2), $33333333.l; =35 uses Op13fb ---------- -Op13fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13fc] move.b #$33, $33333333.l uses Op13fc ---------- -Op13fc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ec0] move.b d0, (a7)+ uses Op1ec0 ---------- -Op1ec0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ed0] move.b (a0), (a7)+ uses Op1ed0 ---------- -Op1ed0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ed8] move.b (a0)+, (a7)+ uses Op1ed8 ---------- -Op1ed8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1edf] move.b (a7)+, (a7)+ uses Op1edf ---------- -Op1edf: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ee0] move.b -(a0), (a7)+ uses Op1ee0 ---------- -Op1ee0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ee7] move.b -(a7), (a7)+ uses Op1ee7 ---------- -Op1ee7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ee8] move.b ($3333,a0), (a7)+ uses Op1ee8 ---------- -Op1ee8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ef0] move.b ($33,a0,d3.w*2), (a7)+ uses Op1ef0 ---------- -Op1ef0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ef8] move.b $3333.w, (a7)+ uses Op1ef8 ---------- -Op1ef8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ef9] move.b $33333333.l, (a7)+ uses Op1ef9 ---------- -Op1ef9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1efa] move.b ($3333,pc), (a7)+; =3335 uses Op1efa ---------- -Op1efa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1efb] move.b ($33,pc,d3.w*2), (a7)+; =35 uses Op1efb ---------- -Op1efb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1efc] move.b #$33, (a7)+ uses Op1efc ---------- -Op1efc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f00] move.b d0, -(a7) uses Op1f00 ---------- -Op1f00: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f10] move.b (a0), -(a7) uses Op1f10 ---------- -Op1f10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f18] move.b (a0)+, -(a7) uses Op1f18 ---------- -Op1f18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f1f] move.b (a7)+, -(a7) uses Op1f1f ---------- -Op1f1f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f20] move.b -(a0), -(a7) uses Op1f20 ---------- -Op1f20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f27] move.b -(a7), -(a7) uses Op1f27 ---------- -Op1f27: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f28] move.b ($3333,a0), -(a7) uses Op1f28 ---------- -Op1f28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f30] move.b ($33,a0,d3.w*2), -(a7) uses Op1f30 ---------- -Op1f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f38] move.b $3333.w, -(a7) uses Op1f38 ---------- -Op1f38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f39] move.b $33333333.l, -(a7) uses Op1f39 ---------- -Op1f39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f3a] move.b ($3333,pc), -(a7); =3335 uses Op1f3a ---------- -Op1f3a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f3b] move.b ($33,pc,d3.w*2), -(a7); =35 uses Op1f3b ---------- -Op1f3b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f3c] move.b #$33, -(a7) uses Op1f3c ---------- -Op1f3c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2000] move.l d0, d0 uses Op2000 ---------- -Op2000: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2010] move.l (a0), d0 uses Op2010 ---------- -Op2010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2018] move.l (a0)+, d0 uses Op2018 ---------- -Op2018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2020] move.l -(a0), d0 uses Op2020 ---------- -Op2020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2028] move.l ($3333,a0), d0 uses Op2028 ---------- -Op2028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2030] move.l ($33,a0,d3.w*2), d0 uses Op2030 ---------- -Op2030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2039] move.l $33333333.l, d0 uses Op2039 ---------- -Op2039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [203a] move.l ($3333,pc), d0; =3335 uses Op203a ---------- -Op203a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [203b] move.l ($33,pc,d3.w*2), d0; =35 uses Op203b ---------- -Op203b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [203c] move.l #$33333333, d0 uses Op203c ---------- -Op203c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2040] movea.l d0, a0 uses Op2040 ---------- -Op2040: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2050] movea.l (a0), a0 uses Op2050 ---------- -Op2050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2058] movea.l (a0)+, a0 uses Op2058 ---------- -Op2058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2060] movea.l -(a0), a0 uses Op2060 ---------- -Op2060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2068] movea.l ($3333,a0), a0 uses Op2068 ---------- -Op2068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2070] movea.l ($33,a0,d3.w*2), a0 uses Op2070 ---------- -Op2070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2078] movea.l $3333.w, a0 uses Op2078 ---------- -Op2078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2079] movea.l $33333333.l, a0 uses Op2079 ---------- -Op2079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [207a] movea.l ($3333,pc), a0; =3335 uses Op207a ---------- -Op207a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [207b] movea.l ($33,pc,d3.w*2), a0; =35 uses Op207b ---------- -Op207b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [207c] movea.l #$33333333, a0 uses Op207c ---------- -Op207c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2080] move.l d0, (a0) uses Op2080 ---------- -Op2080: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2090] move.l (a0), (a0) uses Op2090 ---------- -Op2090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2098] move.l (a0)+, (a0) uses Op2098 ---------- -Op2098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20a0] move.l -(a0), (a0) uses Op20a0 ---------- -Op20a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20a8] move.l ($3333,a0), (a0) uses Op20a8 ---------- -Op20a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20b0] move.l ($33,a0,d3.w*2), (a0) uses Op20b0 ---------- -Op20b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20b8] move.l $3333.w, (a0) uses Op20b8 ---------- -Op20b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20b9] move.l $33333333.l, (a0) uses Op20b9 ---------- -Op20b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20ba] move.l ($3333,pc), (a0); =3335 uses Op20ba ---------- -Op20ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20bb] move.l ($33,pc,d3.w*2), (a0); =35 uses Op20bb ---------- -Op20bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20bc] move.l #$33333333, (a0) uses Op20bc ---------- -Op20bc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20d0] move.l (a0), (a0)+ uses Op20d0 ---------- -Op20d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20d8] move.l (a0)+, (a0)+ uses Op20d8 ---------- -Op20d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20e0] move.l -(a0), (a0)+ uses Op20e0 ---------- -Op20e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20e8] move.l ($3333,a0), (a0)+ uses Op20e8 ---------- -Op20e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20f0] move.l ($33,a0,d3.w*2), (a0)+ uses Op20f0 ---------- -Op20f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20f8] move.l $3333.w, (a0)+ uses Op20f8 ---------- -Op20f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20f9] move.l $33333333.l, (a0)+ uses Op20f9 ---------- -Op20f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20fa] move.l ($3333,pc), (a0)+; =3335 uses Op20fa ---------- -Op20fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20fb] move.l ($33,pc,d3.w*2), (a0)+; =35 uses Op20fb ---------- -Op20fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20fc] move.l #$33333333, (a0)+ uses Op20fc ---------- -Op20fc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2100] move.l d0, -(a0) uses Op2100 ---------- -Op2100: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2110] move.l (a0), -(a0) uses Op2110 ---------- -Op2110: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2118] move.l (a0)+, -(a0) uses Op2118 ---------- -Op2118: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2120] move.l -(a0), -(a0) uses Op2120 ---------- -Op2120: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2128] move.l ($3333,a0), -(a0) uses Op2128 ---------- -Op2128: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2130] move.l ($33,a0,d3.w*2), -(a0) uses Op2130 ---------- -Op2130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2138] move.l $3333.w, -(a0) uses Op2138 ---------- -Op2138: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2139] move.l $33333333.l, -(a0) uses Op2139 ---------- -Op2139: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [213a] move.l ($3333,pc), -(a0); =3335 uses Op213a ---------- -Op213a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [213b] move.l ($33,pc,d3.w*2), -(a0); =35 uses Op213b ---------- -Op213b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [213c] move.l #$33333333, -(a0) uses Op213c ---------- -Op213c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2140] move.l d0, ($3333,a0) uses Op2140 ---------- -Op2140: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2150] move.l (a0), ($3333,a0) uses Op2150 ---------- -Op2150: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2158] move.l (a0)+, ($3333,a0) uses Op2158 ---------- -Op2158: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2160] move.l -(a0), ($3333,a0) uses Op2160 ---------- -Op2160: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2168] move.l ($3333,a0), ($3333,a0) uses Op2168 ---------- -Op2168: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2170] move.l ($33,a0,d3.w*2), ($3333,a0) uses Op2170 ---------- -Op2170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2178] move.l $3333.w, ($3333,a0) uses Op2178 ---------- -Op2178: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2179] move.l $33333333.l, ($3333,a0) uses Op2179 ---------- -Op2179: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [217a] move.l ($3333,pc), ($3333,a0); =3335 uses Op217a ---------- -Op217a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [217b] move.l ($33,pc,d3.w*2), ($3333,a0); =35 uses Op217b ---------- -Op217b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [217c] move.l #$33333333, ($3333,a0) uses Op217c ---------- -Op217c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2180] move.l d0, ($33,a0,d3.w*2) uses Op2180 ---------- -Op2180: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2190] move.l (a0), ($33,a0,d3.w*2) uses Op2190 ---------- -Op2190: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2198] move.l (a0)+, ($33,a0,d3.w*2) uses Op2198 ---------- -Op2198: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21a0] move.l -(a0), ($33,a0,d3.w*2) uses Op21a0 ---------- -Op21a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21a8] move.l ($3333,a0), ($33,a0,d3.w*2) uses Op21a8 ---------- -Op21a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21b0] move.l ($33,a0,d3.w*2), ($33,a0,d3.w*2) uses Op21b0 ---------- -Op21b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21b8] move.l $3333.w, ($33,a0,d3.w*2) uses Op21b8 ---------- -Op21b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21b9] move.l $33333333.l, ($33,a0,d3.w*2) uses Op21b9 ---------- -Op21b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21ba] move.l ($3333,pc), ($33,a0,d3.w*2); =3335 uses Op21ba ---------- -Op21ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21bb] move.l ($33,pc,d3.w*2), ($33,a0,d3.w*2); =35 uses Op21bb ---------- -Op21bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21bc] move.l #$33333333, ($33,a0,d3.w*2) uses Op21bc ---------- -Op21bc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21c0] move.l d0, $3333.w uses Op21c0 ---------- -Op21c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21d0] move.l (a0), $3333.w uses Op21d0 ---------- -Op21d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21d8] move.l (a0)+, $3333.w uses Op21d8 ---------- -Op21d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21e0] move.l -(a0), $3333.w uses Op21e0 ---------- -Op21e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21e8] move.l ($3333,a0), $3333.w uses Op21e8 ---------- -Op21e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21f0] move.l ($33,a0,d3.w*2), $3333.w uses Op21f0 ---------- -Op21f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21f8] move.l $3333.w, $3333.w uses Op21f8 ---------- -Op21f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21f9] move.l $33333333.l, $3333.w uses Op21f9 ---------- -Op21f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21fa] move.l ($3333,pc), $3333.w; =3335 uses Op21fa ---------- -Op21fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21fb] move.l ($33,pc,d3.w*2), $3333.w; =35 uses Op21fb ---------- -Op21fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21fc] move.l #$33333333, $3333.w uses Op21fc ---------- -Op21fc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23c0] move.l d0, $33333333.l uses Op23c0 ---------- -Op23c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23d0] move.l (a0), $33333333.l uses Op23d0 ---------- -Op23d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23d8] move.l (a0)+, $33333333.l uses Op23d8 ---------- -Op23d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23e0] move.l -(a0), $33333333.l uses Op23e0 ---------- -Op23e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23e8] move.l ($3333,a0), $33333333.l uses Op23e8 ---------- -Op23e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23f0] move.l ($33,a0,d3.w*2), $33333333.l uses Op23f0 ---------- -Op23f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23f8] move.l $3333.w, $33333333.l uses Op23f8 ---------- -Op23f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23f9] move.l $33333333.l, $33333333.l uses Op23f9 ---------- -Op23f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23fa] move.l ($3333,pc), $33333333.l; =3335 uses Op23fa ---------- -Op23fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23fb] move.l ($33,pc,d3.w*2), $33333333.l; =35 uses Op23fb ---------- -Op23fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23fc] move.l #$33333333, $33333333.l uses Op23fc ---------- -Op23fc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ec0] move.l d0, (a7)+ uses Op2ec0 ---------- -Op2ec0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ed0] move.l (a0), (a7)+ uses Op2ed0 ---------- -Op2ed0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ed8] move.l (a0)+, (a7)+ uses Op2ed8 ---------- -Op2ed8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ee0] move.l -(a0), (a7)+ uses Op2ee0 ---------- -Op2ee0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ee8] move.l ($3333,a0), (a7)+ uses Op2ee8 ---------- -Op2ee8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ef0] move.l ($33,a0,d3.w*2), (a7)+ uses Op2ef0 ---------- -Op2ef0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ef8] move.l $3333.w, (a7)+ uses Op2ef8 ---------- -Op2ef8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ef9] move.l $33333333.l, (a7)+ uses Op2ef9 ---------- -Op2ef9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2efa] move.l ($3333,pc), (a7)+; =3335 uses Op2efa ---------- -Op2efa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2efb] move.l ($33,pc,d3.w*2), (a7)+; =35 uses Op2efb ---------- -Op2efb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2efc] move.l #$33333333, (a7)+ uses Op2efc ---------- -Op2efc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f00] move.l d0, -(a7) uses Op2f00 ---------- -Op2f00: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f10] move.l (a0), -(a7) uses Op2f10 ---------- -Op2f10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f18] move.l (a0)+, -(a7) uses Op2f18 ---------- -Op2f18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f20] move.l -(a0), -(a7) uses Op2f20 ---------- -Op2f20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f28] move.l ($3333,a0), -(a7) uses Op2f28 ---------- -Op2f28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f30] move.l ($33,a0,d3.w*2), -(a7) uses Op2f30 ---------- -Op2f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f38] move.l $3333.w, -(a7) uses Op2f38 ---------- -Op2f38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f39] move.l $33333333.l, -(a7) uses Op2f39 ---------- -Op2f39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f3a] move.l ($3333,pc), -(a7); =3335 uses Op2f3a ---------- -Op2f3a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f3b] move.l ($33,pc,d3.w*2), -(a7); =35 uses Op2f3b ---------- -Op2f3b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f3c] move.l #$33333333, -(a7) uses Op2f3c ---------- -Op2f3c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3010] move.w (a0), d0 uses Op3010 ---------- -Op3010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3020] move.w -(a0), d0 uses Op3020 ---------- -Op3020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3030] move.w ($33,a0,d3.w*2), d0 uses Op3030 ---------- -Op3030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3038] move.w $3333.w, d0 uses Op3038 ---------- -Op3038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [303a] move.w ($3333,pc), d0; =3335 uses Op303a ---------- -Op303a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [303b] move.w ($33,pc,d3.w*2), d0; =35 uses Op303b ---------- -Op303b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [303c] move.w #$3333, d0 uses Op303c ---------- -Op303c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3050] movea.w (a0), a0 uses Op3050 ---------- -Op3050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3058] movea.w (a0)+, a0 uses Op3058 ---------- -Op3058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3060] movea.w -(a0), a0 uses Op3060 ---------- -Op3060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3068] movea.w ($3333,a0), a0 uses Op3068 ---------- -Op3068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3070] movea.w ($33,a0,d3.w*2), a0 uses Op3070 ---------- -Op3070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3078] movea.w $3333.w, a0 uses Op3078 ---------- -Op3078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3079] movea.w $33333333.l, a0 uses Op3079 ---------- -Op3079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [307a] movea.w ($3333,pc), a0; =3335 uses Op307a ---------- -Op307a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [307b] movea.w ($33,pc,d3.w*2), a0; =35 uses Op307b ---------- -Op307b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [307c] movea.w #$3333, a0 uses Op307c ---------- -Op307c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3090] move.w (a0), (a0) uses Op3090 ---------- -Op3090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3098] move.w (a0)+, (a0) uses Op3098 ---------- -Op3098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30a0] move.w -(a0), (a0) uses Op30a0 ---------- -Op30a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30a8] move.w ($3333,a0), (a0) uses Op30a8 ---------- -Op30a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30b0] move.w ($33,a0,d3.w*2), (a0) uses Op30b0 ---------- -Op30b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30b8] move.w $3333.w, (a0) uses Op30b8 ---------- -Op30b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30b9] move.w $33333333.l, (a0) uses Op30b9 ---------- -Op30b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30ba] move.w ($3333,pc), (a0); =3335 uses Op30ba ---------- -Op30ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30bb] move.w ($33,pc,d3.w*2), (a0); =35 uses Op30bb ---------- -Op30bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30bc] move.w #$3333, (a0) uses Op30bc ---------- -Op30bc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30d8] move.w (a0)+, (a0)+ uses Op30d8 ---------- -Op30d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30e0] move.w -(a0), (a0)+ uses Op30e0 ---------- -Op30e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30e8] move.w ($3333,a0), (a0)+ uses Op30e8 ---------- -Op30e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30f0] move.w ($33,a0,d3.w*2), (a0)+ uses Op30f0 ---------- -Op30f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30f8] move.w $3333.w, (a0)+ uses Op30f8 ---------- -Op30f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30f9] move.w $33333333.l, (a0)+ uses Op30f9 ---------- -Op30f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30fa] move.w ($3333,pc), (a0)+; =3335 uses Op30fa ---------- -Op30fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30fb] move.w ($33,pc,d3.w*2), (a0)+; =35 uses Op30fb ---------- -Op30fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30fc] move.w #$3333, (a0)+ uses Op30fc ---------- -Op30fc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3100] move.w d0, -(a0) uses Op3100 ---------- -Op3100: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3110] move.w (a0), -(a0) uses Op3110 ---------- -Op3110: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3118] move.w (a0)+, -(a0) uses Op3118 ---------- -Op3118: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3120] move.w -(a0), -(a0) uses Op3120 ---------- -Op3120: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3128] move.w ($3333,a0), -(a0) uses Op3128 ---------- -Op3128: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3130] move.w ($33,a0,d3.w*2), -(a0) uses Op3130 ---------- -Op3130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3138] move.w $3333.w, -(a0) uses Op3138 ---------- -Op3138: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3139] move.w $33333333.l, -(a0) uses Op3139 ---------- -Op3139: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [313a] move.w ($3333,pc), -(a0); =3335 uses Op313a ---------- -Op313a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [313b] move.w ($33,pc,d3.w*2), -(a0); =35 uses Op313b ---------- -Op313b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [313c] move.w #$3333, -(a0) uses Op313c ---------- -Op313c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3140] move.w d0, ($3333,a0) uses Op3140 ---------- -Op3140: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3150] move.w (a0), ($3333,a0) uses Op3150 ---------- -Op3150: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3158] move.w (a0)+, ($3333,a0) uses Op3158 ---------- -Op3158: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3160] move.w -(a0), ($3333,a0) uses Op3160 ---------- -Op3160: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3168] move.w ($3333,a0), ($3333,a0) uses Op3168 ---------- -Op3168: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3170] move.w ($33,a0,d3.w*2), ($3333,a0) uses Op3170 ---------- -Op3170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3178] move.w $3333.w, ($3333,a0) uses Op3178 ---------- -Op3178: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3179] move.w $33333333.l, ($3333,a0) uses Op3179 ---------- -Op3179: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [317a] move.w ($3333,pc), ($3333,a0); =3335 uses Op317a ---------- -Op317a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [317b] move.w ($33,pc,d3.w*2), ($3333,a0); =35 uses Op317b ---------- -Op317b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [317c] move.w #$3333, ($3333,a0) uses Op317c ---------- -Op317c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3190] move.w (a0), ($33,a0,d3.w*2) uses Op3190 ---------- -Op3190: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3198] move.w (a0)+, ($33,a0,d3.w*2) uses Op3198 ---------- -Op3198: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31a0] move.w -(a0), ($33,a0,d3.w*2) uses Op31a0 ---------- -Op31a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31a8] move.w ($3333,a0), ($33,a0,d3.w*2) uses Op31a8 ---------- -Op31a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31b0] move.w ($33,a0,d3.w*2), ($33,a0,d3.w*2) uses Op31b0 ---------- -Op31b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31b8] move.w $3333.w, ($33,a0,d3.w*2) uses Op31b8 ---------- -Op31b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31b9] move.w $33333333.l, ($33,a0,d3.w*2) uses Op31b9 ---------- -Op31b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31ba] move.w ($3333,pc), ($33,a0,d3.w*2); =3335 uses Op31ba ---------- -Op31ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31bb] move.w ($33,pc,d3.w*2), ($33,a0,d3.w*2); =35 uses Op31bb ---------- -Op31bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31bc] move.w #$3333, ($33,a0,d3.w*2) uses Op31bc ---------- -Op31bc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31c0] move.w d0, $3333.w uses Op31c0 ---------- -Op31c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31d0] move.w (a0), $3333.w uses Op31d0 ---------- -Op31d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31d8] move.w (a0)+, $3333.w uses Op31d8 ---------- -Op31d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31e0] move.w -(a0), $3333.w uses Op31e0 ---------- -Op31e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31e8] move.w ($3333,a0), $3333.w uses Op31e8 ---------- -Op31e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31f0] move.w ($33,a0,d3.w*2), $3333.w uses Op31f0 ---------- -Op31f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31f8] move.w $3333.w, $3333.w uses Op31f8 ---------- -Op31f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31f9] move.w $33333333.l, $3333.w uses Op31f9 ---------- -Op31f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31fa] move.w ($3333,pc), $3333.w; =3335 uses Op31fa ---------- -Op31fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31fb] move.w ($33,pc,d3.w*2), $3333.w; =35 uses Op31fb ---------- -Op31fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31fc] move.w #$3333, $3333.w uses Op31fc ---------- -Op31fc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33c0] move.w d0, $33333333.l uses Op33c0 ---------- -Op33c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33d0] move.w (a0), $33333333.l uses Op33d0 ---------- -Op33d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33e0] move.w -(a0), $33333333.l uses Op33e0 ---------- -Op33e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33e8] move.w ($3333,a0), $33333333.l uses Op33e8 ---------- -Op33e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33f0] move.w ($33,a0,d3.w*2), $33333333.l uses Op33f0 ---------- -Op33f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33f8] move.w $3333.w, $33333333.l uses Op33f8 ---------- -Op33f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33f9] move.w $33333333.l, $33333333.l uses Op33f9 ---------- -Op33f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33fa] move.w ($3333,pc), $33333333.l; =3335 uses Op33fa ---------- -Op33fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33fb] move.w ($33,pc,d3.w*2), $33333333.l; =35 uses Op33fb ---------- -Op33fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33fc] move.w #$3333, $33333333.l uses Op33fc ---------- -Op33fc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ec0] move.w d0, (a7)+ uses Op3ec0 ---------- -Op3ec0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ed0] move.w (a0), (a7)+ uses Op3ed0 ---------- -Op3ed0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ed8] move.w (a0)+, (a7)+ uses Op3ed8 ---------- -Op3ed8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ee0] move.w -(a0), (a7)+ uses Op3ee0 ---------- -Op3ee0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ee8] move.w ($3333,a0), (a7)+ uses Op3ee8 ---------- -Op3ee8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ef0] move.w ($33,a0,d3.w*2), (a7)+ uses Op3ef0 ---------- -Op3ef0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ef8] move.w $3333.w, (a7)+ uses Op3ef8 ---------- -Op3ef8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ef9] move.w $33333333.l, (a7)+ uses Op3ef9 ---------- -Op3ef9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3efa] move.w ($3333,pc), (a7)+; =3335 uses Op3efa ---------- -Op3efa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3efb] move.w ($33,pc,d3.w*2), (a7)+; =35 uses Op3efb ---------- -Op3efb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3efc] move.w #$3333, (a7)+ uses Op3efc ---------- -Op3efc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f00] move.w d0, -(a7) uses Op3f00 ---------- -Op3f00: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f10] move.w (a0), -(a7) uses Op3f10 ---------- -Op3f10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f18] move.w (a0)+, -(a7) uses Op3f18 ---------- -Op3f18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f20] move.w -(a0), -(a7) uses Op3f20 ---------- -Op3f20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f28] move.w ($3333,a0), -(a7) uses Op3f28 ---------- -Op3f28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f30] move.w ($33,a0,d3.w*2), -(a7) uses Op3f30 ---------- -Op3f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f38] move.w $3333.w, -(a7) uses Op3f38 ---------- -Op3f38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f39] move.w $33333333.l, -(a7) uses Op3f39 ---------- -Op3f39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f3a] move.w ($3333,pc), -(a7); =3335 uses Op3f3a ---------- -Op3f3a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f3b] move.w ($33,pc,d3.w*2), -(a7); =35 uses Op3f3b ---------- -Op3f3b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f3c] move.w #$3333, -(a7) uses Op3f3c ---------- -Op3f3c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4000] negx.b d0 uses Op4000 ---------- -Op4000: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4010] negx.b (a0) uses Op4010 ---------- -Op4010: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4018] negx.b (a0)+ uses Op4018 ---------- -Op4018: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [401f] negx.b (a7)+ uses Op401f ---------- -Op401f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4020] negx.b -(a0) uses Op4020 ---------- -Op4020: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4027] negx.b -(a7) uses Op4027 ---------- -Op4027: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4028] negx.b ($3333,a0) uses Op4028 ---------- -Op4028: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4030] negx.b ($33,a0,d3.w*2) uses Op4030 ---------- -Op4030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4038] negx.b $3333.w uses Op4038 ---------- -Op4038: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4039] negx.b $33333333.l uses Op4039 ---------- -Op4039: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4040] negx.w d0 uses Op4040 ---------- -Op4040: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4050] negx.w (a0) uses Op4050 ---------- -Op4050: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4058] negx.w (a0)+ uses Op4058 ---------- -Op4058: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4060] negx.w -(a0) uses Op4060 ---------- -Op4060: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4068] negx.w ($3333,a0) uses Op4068 ---------- -Op4068: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4070] negx.w ($33,a0,d3.w*2) uses Op4070 ---------- -Op4070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4078] negx.w $3333.w uses Op4078 ---------- -Op4078: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4079] negx.w $33333333.l uses Op4079 ---------- -Op4079: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4080] negx.l d0 uses Op4080 ---------- -Op4080: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4090] negx.l (a0) uses Op4090 ---------- -Op4090: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4098] negx.l (a0)+ uses Op4098 ---------- -Op4098: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40a0] negx.l -(a0) uses Op40a0 ---------- -Op40a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40a8] negx.l ($3333,a0) uses Op40a8 ---------- -Op40a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40b0] negx.l ($33,a0,d3.w*2) uses Op40b0 ---------- -Op40b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40b8] negx.l $3333.w uses Op40b8 ---------- -Op40b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40b9] negx.l $33333333.l uses Op40b9 ---------- -Op40b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40c0] move sr, d0 uses Op40c0 ---------- -Op40c0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f - mov r0,r0,lsl #2 -;@ EaWrite: r1 into register[r0]: - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40d0] move sr, (a0) uses Op40d0 ---------- -Op40d0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40d8] move sr, (a0)+ uses Op40d8 ---------- -Op40d8: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40e0] move sr, -(a0) uses Op40e0 ---------- -Op40e0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40e8] move sr, ($3333,a0) uses Op40e8 ---------- -Op40e8: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40f0] move sr, ($33,a0,d3.w*2) uses Op40f0 ---------- -Op40f0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40f8] move sr, $3333.w uses Op40f8 ---------- -Op40f8: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40f9] move sr, $33333333.l uses Op40f9 ---------- -Op40f9: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4180] chk d0, a0 uses Op4180 ---------- -Op4180: -;@ Get value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap4180 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap4180 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap4180: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#50 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4190] chk (a0), a0 uses Op4190 ---------- -Op4190: -;@ Get value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap4190 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap4190 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap4190: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4198] chk (a0)+, a0 uses Op4198 ---------- -Op4198: -;@ Get value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap4198 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap4198 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap4198: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41a0] chk -(a0), a0 uses Op41a0 ---------- -Op41a0: -;@ Get value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41a0 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41a0 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41a0: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#56 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41a8] chk ($3333,a0), a0 uses Op41a8 ---------- -Op41a8: -;@ Get value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41a8 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41a8 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41a8: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41b0] chk ($33,a0,d3.w*2), a0 uses Op41b0 ---------- -Op41b0: -;@ Get value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41b0 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41b0 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41b0: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41b8] chk $3333.w, a0 uses Op41b8 ---------- -Op41b8: -;@ Get value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41b8 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41b8 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41b8: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41b9] chk $33333333.l, a0 uses Op41b9 ---------- -Op41b9: -;@ Get value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41b9 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41b9 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41b9: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41ba] chk ($3333,pc), a0; =3335 uses Op41ba ---------- -Op41ba: -;@ Get value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41ba -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41ba -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41ba: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41bb] chk ($33,pc,d3.w*2), a0; =35 uses Op41bb ---------- -Op41bb: -;@ Get value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41bb -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41bb -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41bb: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41bc] chk #$33, a0 uses Op41bc ---------- -Op41bc: -;@ Get value into r0: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41bc -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41bc -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41bc: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41d0] lea (a0), a0 uses Op41d0 ---------- -Op41d0: -;@ EaCalc : Get '(a0)' into r1: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r1,[r7,r2,lsl #2] -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41e8] lea ($3333,a0), a0 uses Op41e8 ---------- -Op41e8: -;@ EaCalc : Get '($3333,a0)' into r1: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r1,r0,r2 ;@ Add on offset -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41f8] lea $3333.w, a0 uses Op41f8 ---------- -Op41f8: -;@ EaCalc : Get '$3333.w' into r1: - ldrsh r1,[r4],#2 ;@ Fetch Absolute Short address -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41f9] lea $33333333.l, a0 uses Op41f9 ---------- -Op41f9: -;@ EaCalc : Get '$33333333.l' into r1: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r1,r0,r2,lsl #16 -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41fa] lea ($3333,pc), a0; =3335 uses Op41fa ---------- -Op41fa: -;@ EaCalc : Get '($3333,pc)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r1,r2,r0 ;@ ($nn,PC) -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41fb] lea ($33,pc,d3.w*2), a0; =35 uses Op41fb ---------- -Op41fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r1,r2,r0 ;@ r1=Disp+PC+Rn -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4200] clr.b d0 uses Op4200 ---------- -Op4200: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4210] clr.b (a0) uses Op4210 ---------- -Op4210: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4218] clr.b (a0)+ uses Op4218 ---------- -Op4218: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [421f] clr.b (a7)+ uses Op421f ---------- -Op421f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4220] clr.b -(a0) uses Op4220 ---------- -Op4220: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4227] clr.b -(a7) uses Op4227 ---------- -Op4227: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4228] clr.b ($3333,a0) uses Op4228 ---------- -Op4228: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4230] clr.b ($33,a0,d3.w*2) uses Op4230 ---------- -Op4230: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4238] clr.b $3333.w uses Op4238 ---------- -Op4238: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4239] clr.b $33333333.l uses Op4239 ---------- -Op4239: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4240] clr.w d0 uses Op4240 ---------- -Op4240: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4250] clr.w (a0) uses Op4250 ---------- -Op4250: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4258] clr.w (a0)+ uses Op4258 ---------- -Op4258: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4260] clr.w -(a0) uses Op4260 ---------- -Op4260: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4268] clr.w ($3333,a0) uses Op4268 ---------- -Op4268: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4270] clr.w ($33,a0,d3.w*2) uses Op4270 ---------- -Op4270: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4278] clr.w $3333.w uses Op4278 ---------- -Op4278: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4279] clr.w $33333333.l uses Op4279 ---------- -Op4279: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4280] clr.l d0 uses Op4280 ---------- -Op4280: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4290] clr.l (a0) uses Op4290 ---------- -Op4290: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4298] clr.l (a0)+ uses Op4298 ---------- -Op4298: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42a0] clr.l -(a0) uses Op42a0 ---------- -Op42a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42a8] clr.l ($3333,a0) uses Op42a8 ---------- -Op42a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42b0] clr.l ($33,a0,d3.w*2) uses Op42b0 ---------- -Op42b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42b8] clr.l $3333.w uses Op42b8 ---------- -Op42b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42b9] clr.l $33333333.l uses Op42b9 ---------- -Op42b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4400] neg.b d0 uses Op4400 ---------- -Op4400: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4410] neg.b (a0) uses Op4410 ---------- -Op4410: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4418] neg.b (a0)+ uses Op4418 ---------- -Op4418: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [441f] neg.b (a7)+ uses Op441f ---------- -Op441f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4420] neg.b -(a0) uses Op4420 ---------- -Op4420: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4427] neg.b -(a7) uses Op4427 ---------- -Op4427: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4428] neg.b ($3333,a0) uses Op4428 ---------- -Op4428: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4430] neg.b ($33,a0,d3.w*2) uses Op4430 ---------- -Op4430: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4438] neg.b $3333.w uses Op4438 ---------- -Op4438: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4439] neg.b $33333333.l uses Op4439 ---------- -Op4439: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4440] neg.w d0 uses Op4440 ---------- -Op4440: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4450] neg.w (a0) uses Op4450 ---------- -Op4450: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4458] neg.w (a0)+ uses Op4458 ---------- -Op4458: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4460] neg.w -(a0) uses Op4460 ---------- -Op4460: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4468] neg.w ($3333,a0) uses Op4468 ---------- -Op4468: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4470] neg.w ($33,a0,d3.w*2) uses Op4470 ---------- -Op4470: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4478] neg.w $3333.w uses Op4478 ---------- -Op4478: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4479] neg.w $33333333.l uses Op4479 ---------- -Op4479: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4480] neg.l d0 uses Op4480 ---------- -Op4480: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4490] neg.l (a0) uses Op4490 ---------- -Op4490: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4498] neg.l (a0)+ uses Op4498 ---------- -Op4498: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44a0] neg.l -(a0) uses Op44a0 ---------- -Op44a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44a8] neg.l ($3333,a0) uses Op44a8 ---------- -Op44a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44b0] neg.l ($33,a0,d3.w*2) uses Op44b0 ---------- -Op44b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44b8] neg.l $3333.w uses Op44b8 ---------- -Op44b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44b9] neg.l $33333333.l uses Op44b9 ---------- -Op44b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44c0] move d0, ccr uses Op44c0 ---------- -Op44c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44d0] move (a0), ccr uses Op44d0 ---------- -Op44d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44d8] move (a0)+, ccr uses Op44d8 ---------- -Op44d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44e0] move -(a0), ccr uses Op44e0 ---------- -Op44e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44e8] move ($3333,a0), ccr uses Op44e8 ---------- -Op44e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44f0] move ($33,a0,d3.w*2), ccr uses Op44f0 ---------- -Op44f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44f8] move $3333.w, ccr uses Op44f8 ---------- -Op44f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44f9] move $33333333.l, ccr uses Op44f9 ---------- -Op44f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44fa] move ($3333,pc), ccr; =3335 uses Op44fa ---------- -Op44fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44fb] move ($33,pc,d3.w*2), ccr; =35 uses Op44fb ---------- -Op44fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44fc] move #$3333, ccr uses Op44fc ---------- -Op44fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4600] not.b d0 uses Op4600 ---------- -Op4600: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4610] not.b (a0) uses Op4610 ---------- -Op4610: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4618] not.b (a0)+ uses Op4618 ---------- -Op4618: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [461f] not.b (a7)+ uses Op461f ---------- -Op461f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4620] not.b -(a0) uses Op4620 ---------- -Op4620: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4627] not.b -(a7) uses Op4627 ---------- -Op4627: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4628] not.b ($3333,a0) uses Op4628 ---------- -Op4628: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4630] not.b ($33,a0,d3.w*2) uses Op4630 ---------- -Op4630: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4638] not.b $3333.w uses Op4638 ---------- -Op4638: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4639] not.b $33333333.l uses Op4639 ---------- -Op4639: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4640] not.w d0 uses Op4640 ---------- -Op4640: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4650] not.w (a0) uses Op4650 ---------- -Op4650: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4658] not.w (a0)+ uses Op4658 ---------- -Op4658: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4660] not.w -(a0) uses Op4660 ---------- -Op4660: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4668] not.w ($3333,a0) uses Op4668 ---------- -Op4668: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4670] not.w ($33,a0,d3.w*2) uses Op4670 ---------- -Op4670: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4678] not.w $3333.w uses Op4678 ---------- -Op4678: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4679] not.w $33333333.l uses Op4679 ---------- -Op4679: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4680] not.l d0 uses Op4680 ---------- -Op4680: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4690] not.l (a0) uses Op4690 ---------- -Op4690: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4698] not.l (a0)+ uses Op4698 ---------- -Op4698: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46a0] not.l -(a0) uses Op46a0 ---------- -Op46a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46a8] not.l ($3333,a0) uses Op46a8 ---------- -Op46a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46b0] not.l ($33,a0,d3.w*2) uses Op46b0 ---------- -Op46b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46b8] not.l $3333.w uses Op46b8 ---------- -Op46b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46b9] not.l $33333333.l uses Op46b9 ---------- -Op46b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46c0] move d0, sr uses Op46c0 ---------- -Op46c0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46c0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46c0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#12 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46d0] move (a0), sr uses Op46d0 ---------- -Op46d0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46d0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46d0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#16 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46d8] move (a0)+, sr uses Op46d8 ---------- -Op46d8: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46d8 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46d8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#16 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46e0] move -(a0), sr uses Op46e0 ---------- -Op46e0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46e0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46e0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#18 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46e8] move ($3333,a0), sr uses Op46e8 ---------- -Op46e8: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46e8 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46e8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46f0] move ($33,a0,d3.w*2), sr uses Op46f0 ---------- -Op46f0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46f0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46f0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#22 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46f8] move $3333.w, sr uses Op46f8 ---------- -Op46f8: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46f8 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46f8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46f9] move $33333333.l, sr uses Op46f9 ---------- -Op46f9: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46f9 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46f9: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#24 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46fa] move ($3333,pc), sr; =3335 uses Op46fa ---------- -Op46fa: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46fa - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46fa: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46fb] move ($33,pc,d3.w*2), sr; =35 uses Op46fb ---------- -Op46fb: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46fb - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46fb: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#22 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46fc] move #$3333, sr uses Op46fc ---------- -Op46fc: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46fc - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46fc: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#16 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [4800] nbcd d0 uses Op4800 ---------- -Op4800: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldrb r0,[r7,r11,lsl #2] - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4800 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - -finish4800: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4810] nbcd (a0) uses Op4810 ---------- -Op4810: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4810 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4810: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4818] nbcd (a0)+ uses Op4818 ---------- -Op4818: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4818 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4818: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [481f] nbcd (a7)+ uses Op481f ---------- -Op481f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish481f - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish481f: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4820] nbcd -(a0) uses Op4820 ---------- -Op4820: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4820 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4820: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4827] nbcd -(a7) uses Op4827 ---------- -Op4827: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4827 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4827: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4828] nbcd ($3333,a0) uses Op4828 ---------- -Op4828: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4828 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4828: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4830] nbcd ($33,a0,d3.w*2) uses Op4830 ---------- -Op4830: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4830 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4830: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4838] nbcd $3333.w uses Op4838 ---------- -Op4838: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4838 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4838: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4839] nbcd $33333333.l uses Op4839 ---------- -Op4839: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4839 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4839: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4850] pea (a0) uses Op4850 ---------- -Op4850: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '(a0)' into r1: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r1,[r7,r2,lsl #2] - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4868] pea ($3333,a0) uses Op4868 ---------- -Op4868: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($3333,a0)' into r1: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r1,r0,r2 ;@ Add on offset - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4870] pea ($33,a0,d3.w*2) uses Op4870 ---------- -Op4870: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($33,a0,d3.w*2)' into r1: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r1,r2,r3 ;@ r1=Disp+An+Rn - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4878] pea $3333.w uses Op4878 ---------- -Op4878: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '$3333.w' into r1: - ldrsh r1,[r4],#2 ;@ Fetch Absolute Short address - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4879] pea $33333333.l uses Op4879 ---------- -Op4879: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '$33333333.l' into r1: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r1,r0,r2,lsl #16 - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [487a] pea ($3333,pc); =3335 uses Op487a ---------- -Op487a: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($3333,pc)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r1,r2,r0 ;@ ($nn,PC) - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [487b] pea ($33,pc,d3.w*2); =35 uses Op487b ---------- -Op487b: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($33,pc,d3.w*2)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r1,r2,r0 ;@ r1=Disp+PC+Rn - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4880] ext.w d0 uses Op4880 ---------- -Op4880: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - movs r0,r0,asl #24 - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r0,asr #24 - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4890] movem.w d0-d1/d4-d5/a0-a1/a4-a5, (a0) uses Op4890 ---------- -Op4890: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4890 - -Movemloop4890: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4890 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '(a0)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4890 - -NoRegs4890: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48a0] movem.w d2-d3/d6-d7/a2-a3/a6-a7, -(a0) uses Op48a0 ---------- -Op48a0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#0x40 ;@ order reversed for -(An) - - tst r11,r11 - beq NoRegs48a0 - -Movemloop48a0: - add r4,r4,#-4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48a0 - - sub r6,r6,#2 ;@ Pre-decrement address - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '-(a0)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48a0 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0007 - orr r0,r0,#0x8 ;@ A0-7 -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs48a0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48a8] movem.w d0-d1/d4-d5/a0-a1/a4-a5, ($3333,a0) uses Op48a8 ---------- -Op48a8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48a8 - -Movemloop48a8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48a8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($3333,a0)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48a8 - -NoRegs48a8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48b0] movem.w d0-d1/d4-d5/a0-a1/a4-a5, ($33,a0,d3.w*2) uses Op48b0 ---------- -Op48b0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48b0 - -Movemloop48b0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48b0 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48b0 - -NoRegs48b0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48b8] movem.w d0-d1/d4-d5/a0-a1/a4-a5, $3333.w uses Op48b8 ---------- -Op48b8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48b8 - -Movemloop48b8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48b8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$3333.w' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48b8 - -NoRegs48b8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48b9] movem.w d0-d1/d4-d5/a0-a1/a4-a5, $33333333.l uses Op48b9 ---------- -Op48b9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48b9 - -Movemloop48b9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48b9 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$33333333.l' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48b9 - -NoRegs48b9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48c0] ext.l d0 uses Op48c0 ---------- -Op48c0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - movs r0,r0,asl #16 - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [48d0] movem.l d0-d1/d4-d5/a0-a1/a4-a5, (a0) uses Op48d0 ---------- -Op48d0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48d0 - -Movemloop48d0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48d0 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '(a0)' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48d0 - -NoRegs48d0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48e0] movem.l d2-d3/d6-d7/a2-a3/a6-a7, -(a0) uses Op48e0 ---------- -Op48e0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#0x40 ;@ order reversed for -(An) - - tst r11,r11 - beq NoRegs48e0 - -Movemloop48e0: - add r4,r4,#-4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48e0 - - sub r6,r6,#4 ;@ Pre-decrement address - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An - add r0,r6,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldr r1,[r7,r4] ;@ Load value from Dn/An - mov r0,r6 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48e0 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0007 - orr r0,r0,#0x8 ;@ A0-7 -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs48e0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48e8] movem.l d0-d1/d4-d5/a0-a1/a4-a5, ($3333,a0) uses Op48e8 ---------- -Op48e8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48e8 - -Movemloop48e8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48e8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($3333,a0)' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48e8 - -NoRegs48e8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48f0] movem.l d0-d1/d4-d5/a0-a1/a4-a5, ($33,a0,d3.w*2) uses Op48f0 ---------- -Op48f0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48f0 - -Movemloop48f0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48f0 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48f0 - -NoRegs48f0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48f8] movem.l d0-d1/d4-d5/a0-a1/a4-a5, $3333.w uses Op48f8 ---------- -Op48f8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48f8 - -Movemloop48f8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48f8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$3333.w' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48f8 - -NoRegs48f8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48f9] movem.l d0-d1/d4-d5/a0-a1/a4-a5, $33333333.l uses Op48f9 ---------- -Op48f9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48f9 - -Movemloop48f9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48f9 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$33333333.l' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48f9 - -NoRegs48f9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4a00] tst.b d0 uses Op4a00 ---------- -Op4a00: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a10] tst.b (a0) uses Op4a10 ---------- -Op4a10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a18] tst.b (a0)+ uses Op4a18 ---------- -Op4a18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a1f] tst.b (a7)+ uses Op4a1f ---------- -Op4a1f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a20] tst.b -(a0) uses Op4a20 ---------- -Op4a20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a27] tst.b -(a7) uses Op4a27 ---------- -Op4a27: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a30] tst.b ($33,a0,d3.w*2) uses Op4a30 ---------- -Op4a30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a40] tst.w d0 uses Op4a40 ---------- -Op4a40: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f - mov r0,r0,lsl #2 -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0] - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a50] tst.w (a0) uses Op4a50 ---------- -Op4a50: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a58] tst.w (a0)+ uses Op4a58 ---------- -Op4a58: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a60] tst.w -(a0) uses Op4a60 ---------- -Op4a60: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a68] tst.w ($3333,a0) uses Op4a68 ---------- -Op4a68: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a70] tst.w ($33,a0,d3.w*2) uses Op4a70 ---------- -Op4a70: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a78] tst.w $3333.w uses Op4a78 ---------- -Op4a78: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a80] tst.l d0 uses Op4a80 ---------- -Op4a80: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a90] tst.l (a0) uses Op4a90 ---------- -Op4a90: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a98] tst.l (a0)+ uses Op4a98 ---------- -Op4a98: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4aa0] tst.l -(a0) uses Op4aa0 ---------- -Op4aa0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4aa8] tst.l ($3333,a0) uses Op4aa8 ---------- -Op4aa8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ab0] tst.l ($33,a0,d3.w*2) uses Op4ab0 ---------- -Op4ab0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ab8] tst.l $3333.w uses Op4ab8 ---------- -Op4ab8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ab9] tst.l $33333333.l uses Op4ab9 ---------- -Op4ab9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ac0] tas d0 uses Op4ac0 ---------- -Op4ac0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsl #2] - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ad0] tas (a0) uses Op4ad0 ---------- -Op4ad0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ad8] tas (a0)+ uses Op4ad8 ---------- -Op4ad8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4adf] tas (a7)+ uses Op4adf ---------- -Op4adf: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ae0] tas -(a0) uses Op4ae0 ---------- -Op4ae0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ae7] tas -(a7) uses Op4ae7 ---------- -Op4ae7: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ae8] tas ($3333,a0) uses Op4ae8 ---------- -Op4ae8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4af0] tas ($33,a0,d3.w*2) uses Op4af0 ---------- -Op4af0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4af8] tas $3333.w uses Op4af8 ---------- -Op4af8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4af9] tas $33333333.l uses Op4af9 ---------- -Op4af9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4c90] movem.w (a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4c90 ---------- -Op4c90: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4c90 - -Movemloop4c90: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4c90 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4c90 - -NoRegs4c90: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4c98] movem.w (a0)+, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4c98 ---------- -Op4c98: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4c98 - -Movemloop4c98: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4c98 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)+' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4c98 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs4c98: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4ca8] movem.w ($3333,a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4ca8 ---------- -Op4ca8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4ca8 - -Movemloop4ca8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4ca8 - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4ca8 - -NoRegs4ca8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cb0] movem.w ($33,a0,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cb0 ---------- -Op4cb0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cb0 - -Movemloop4cb0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cb0 - - ;@ Copy memory to register: -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cb0 - -NoRegs4cb0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cb8] movem.w $3333.w, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cb8 ---------- -Op4cb8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cb8 - -Movemloop4cb8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cb8 - - ;@ Copy memory to register: -;@ EaRead : Read '$3333.w' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cb8 - -NoRegs4cb8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cb9] movem.w $33333333.l, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cb9 ---------- -Op4cb9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cb9 - -Movemloop4cb9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cb9 - - ;@ Copy memory to register: -;@ EaRead : Read '$33333333.l' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cb9 - -NoRegs4cb9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cba] movem.w ($3333,pc), d0-d1/d4-d5/a0-a1/a4-a5; =3337 uses Op4cba ---------- -Op4cba: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,pc)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r6,r2,r0 ;@ ($nn,PC) - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cba - -Movemloop4cba: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cba - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,pc)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cba - -NoRegs4cba: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cbb] movem.w ($33,pc,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5; =37 uses Op4cbb ---------- -Op4cbb: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r6,r2,r0 ;@ r6=Disp+PC+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cbb - -Movemloop4cbb: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cbb - - ;@ Copy memory to register: -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cbb - -NoRegs4cbb: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cd0] movem.l (a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cd0 ---------- -Op4cd0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cd0 - -Movemloop4cd0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cd0 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cd0 - -NoRegs4cd0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cd8] movem.l (a0)+, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cd8 ---------- -Op4cd8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cd8 - -Movemloop4cd8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cd8 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)+' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cd8 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs4cd8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4ce8] movem.l ($3333,a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4ce8 ---------- -Op4ce8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4ce8 - -Movemloop4ce8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4ce8 - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4ce8 - -NoRegs4ce8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cf0] movem.l ($33,a0,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cf0 ---------- -Op4cf0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cf0 - -Movemloop4cf0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cf0 - - ;@ Copy memory to register: -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cf0 - -NoRegs4cf0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cf8] movem.l $3333.w, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cf8 ---------- -Op4cf8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cf8 - -Movemloop4cf8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cf8 - - ;@ Copy memory to register: -;@ EaRead : Read '$3333.w' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cf8 - -NoRegs4cf8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cf9] movem.l $33333333.l, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cf9 ---------- -Op4cf9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cf9 - -Movemloop4cf9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cf9 - - ;@ Copy memory to register: -;@ EaRead : Read '$33333333.l' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cf9 - -NoRegs4cf9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cfa] movem.l ($3333,pc), d0-d1/d4-d5/a0-a1/a4-a5; =3337 uses Op4cfa ---------- -Op4cfa: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,pc)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r6,r2,r0 ;@ ($nn,PC) - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cfa - -Movemloop4cfa: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cfa - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,pc)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cfa - -NoRegs4cfa: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cfb] movem.l ($33,pc,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5; =37 uses Op4cfb ---------- -Op4cfb: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r6,r2,r0 ;@ r6=Disp+PC+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cfb - -Movemloop4cfb: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cfb - - ;@ Copy memory to register: -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cfb - -NoRegs4cfb: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4e40] trap #0 uses Op4e40 ---------- -Op4e40: - and r0,r8,#0xf ;@ Get trap number - orr r0,r0,#0x20 ;@ 32+n - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#38 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e50] link a0,#$3333 uses Op4e50 ---------- -Op4e50: -;@ Get An -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - orr r11,r11,#0x8 ;@ A0-7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsl #2] - - ldr r0,[r7,#0x3c] ;@ Get A7 - sub r0,r0,#4 ;@ A7-=4 - mov r8,r0 ;@ abuse r8 - -;@ Write An to Stack - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Save to An -;@ EaWrite: r8 into register[r11]: - str r8,[r7,r11,lsl #2] - -;@ Get offset: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - add r8,r8,r0 ;@ Add offset to A7 - str r8,[r7,#0x3c] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e57] link a7,#$3333 uses Op4e57 ---------- -Op4e57: - ldr r0,[r7,#0x3c] ;@ Get A7 - sub r0,r0,#4 ;@ A7-=4 - mov r8,r0 ;@ abuse r8 - mov r1,r0 - -;@ Write An to Stack - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Save to An -;@ Get offset: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - add r8,r8,r0 ;@ Add offset to A7 - str r8,[r7,#0x3c] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e58] unlk a0 uses Op4e58 ---------- -Op4e58: -;@ Get An -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - add r8,r0,#4 ;@ A7+=4, abuse r8 - -;@ Pop An from stack: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r8,[r7,#0x3c] ;@ Save A7 - -;@ An = value from stack: -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e60] move a0, usp uses Op4e60 ---------- -Op4e60: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f - orr r0,r0,#0x8 ;@ A0-7 -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - str r0,[r7,#0x48] ;@ Put in USP - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e68] move usp, a0 uses Op4e68 ---------- -Op4e68: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - - ldr r1,[r7,#0x48] ;@ Get from USP - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e70] reset uses Op4e70 ---------- -Op4e70: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - - str r4,[r7,#0x40] ;@ Save PC - mov r1,r10,lsr #28 - strb r1,[r7,#0x46] ;@ Save Flags (NZCV) - str r5,[r7,#0x5c] ;@ Save Cycles - ldr r11,[r7,#0x90] ;@ ResetCallback - tst r11,r11 - movne lr,pc - bxne r11 ;@ call ResetCallback if it is defined - ldrb r10,[r7,#0x46] ;@ r10 = Load Flags (NZCV) - ldr r5,[r7,#0x5c] ;@ Load Cycles - ldr r4,[r7,#0x40] ;@ Load PC - mov r10,r10,lsl #28 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#132 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e72] stop uses Op4e72 ---------- -Op4e72: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - - ldrh r0,[r4],#2 ;@ Fetch the immediate - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r0,r0,ror #8 - and r0,r0,#0xa7 ;@ only take defined bits - strb r0,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r0,r11 - tst r0,#0x20 - beq no_sp_swap4e72 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap4e72: - - ldr r0,[r7,#0x58] - mov r5,#0 ;@ eat cycles - orr r0,r0,#1 ;@ stopped - str r0,[r7,#0x58] - - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e73] rte uses Op4e73 ---------- -Op4e73: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ Pop SR: - ldr r0,[r7,#0x3c] - add r1,r0,#2 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r0,r0,ror #8 - and r0,r0,#0xa7 ;@ only take defined bits - strb r0,[r7,#0x44] ;@ Store SR high - -;@ Pop PC: - ldr r0,[r7,#0x3c] - add r1,r0,#4 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r1,[r7,#0x60] ;@ Get Memory base - add r0,r0,r1 ;@ Memory Base+PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - ldr r1,[r7,#0x44] ;@ reload SR high -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap4e73 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap4e73: - ldr r1,[r7,#0x58] - bic r1,r1,#0x0c ;@ clear 'not processing instruction' and 'doing addr error' bits - str r1,[r7,#0x58] - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [4e76] trapv uses Op4e76 ---------- -Op4e76: - tst r10,#0x10000000 - subne r5,r5,#34 - movne r0,#7 ;@ TRAPV exception - blne Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e77] rtr uses Op4e77 ---------- -Op4e77: -;@ Pop SR: - ldr r0,[r7,#0x3c] - add r1,r0,#2 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - -;@ Pop PC: - ldr r0,[r7,#0x3c] - add r1,r0,#4 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r1,[r7,#0x60] ;@ Get Memory base - add r0,r0,r1 ;@ Memory Base+PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e90] jsr (a0) uses Op4e90 ---------- -Op4e90: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '(a0)' into r12: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r12,[r7,r2,lsl #2] -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ea8] jsr ($3333,a0) uses Op4ea8 ---------- -Op4ea8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,a0)' into r12: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r12,r0,r2 ;@ Add on offset -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eb0] jsr ($33,a0,d3.w*2) uses Op4eb0 ---------- -Op4eb0: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r12: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r12,r2,r3 ;@ r12=Disp+An+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eb8] jsr $3333.w uses Op4eb8 ---------- -Op4eb8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$3333.w' into r12: - ldrsh r12,[r4],#2 ;@ Fetch Absolute Short address -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eb9] jsr $33333333.l uses Op4eb9 ---------- -Op4eb9: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$33333333.l' into r12: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r12,r0,r2,lsl #16 -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eba] jsr ($3333,pc); =3335 uses Op4eba ---------- -Op4eba: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,pc)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r12,r2,r0 ;@ ($nn,PC) -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ebb] jsr ($33,pc,d3.w*2); =35 uses Op4ebb ---------- -Op4ebb: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r12,r2,r0 ;@ r12=Disp+PC+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ed0] jmp (a0) uses Op4ed0 ---------- -Op4ed0: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '(a0)' into r12: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r12,[r7,r2,lsl #2] -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ee8] jmp ($3333,a0) uses Op4ee8 ---------- -Op4ee8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,a0)' into r12: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r12,r0,r2 ;@ Add on offset -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ef0] jmp ($33,a0,d3.w*2) uses Op4ef0 ---------- -Op4ef0: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r12: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r12,r2,r3 ;@ r12=Disp+An+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ef8] jmp $3333.w uses Op4ef8 ---------- -Op4ef8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$3333.w' into r12: - ldrsh r12,[r4],#2 ;@ Fetch Absolute Short address -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ef9] jmp $33333333.l uses Op4ef9 ---------- -Op4ef9: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$33333333.l' into r12: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r12,r0,r2,lsl #16 -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4efa] jmp ($3333,pc); =3335 uses Op4efa ---------- -Op4efa: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,pc)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r12,r2,r0 ;@ ($nn,PC) -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4efb] jmp ($33,pc,d3.w*2); =35 uses Op4efb ---------- -Op4efb: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r12,r2,r0 ;@ r12=Disp+PC+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5000] addq.b #8, d0 uses Op5000 ---------- -Op5000: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5010] addq.b #8, (a0) uses Op5010 ---------- -Op5010: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5018] addq.b #8, (a0)+ uses Op5018 ---------- -Op5018: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [501f] addq.b #8, (a7)+ uses Op501f ---------- -Op501f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5020] addq.b #8, -(a0) uses Op5020 ---------- -Op5020: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5027] addq.b #8, -(a7) uses Op5027 ---------- -Op5027: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5028] addq.b #8, ($3333,a0) uses Op5028 ---------- -Op5028: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5030] addq.b #8, ($33,a0,d3.w*2) uses Op5030 ---------- -Op5030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5038] addq.b #8, $3333.w uses Op5038 ---------- -Op5038: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5039] addq.b #8, $33333333.l uses Op5039 ---------- -Op5039: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5040] addq.w #8, d0 uses Op5040 ---------- -Op5040: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5048] addq.w #8, a0 uses Op5048 ---------- -Op5048: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5050] addq.w #8, (a0) uses Op5050 ---------- -Op5050: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5058] addq.w #8, (a0)+ uses Op5058 ---------- -Op5058: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5060] addq.w #8, -(a0) uses Op5060 ---------- -Op5060: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5068] addq.w #8, ($3333,a0) uses Op5068 ---------- -Op5068: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5070] addq.w #8, ($33,a0,d3.w*2) uses Op5070 ---------- -Op5070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5078] addq.w #8, $3333.w uses Op5078 ---------- -Op5078: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5079] addq.w #8, $33333333.l uses Op5079 ---------- -Op5079: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5080] addq.l #8, d0 uses Op5080 ---------- -Op5080: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5088] addq.l #8, a0 uses Op5088 ---------- -Op5088: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5090] addq.l #8, (a0) uses Op5090 ---------- -Op5090: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5098] addq.l #8, (a0)+ uses Op5098 ---------- -Op5098: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50a0] addq.l #8, -(a0) uses Op50a0 ---------- -Op50a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50a8] addq.l #8, ($3333,a0) uses Op50a8 ---------- -Op50a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50b0] addq.l #8, ($33,a0,d3.w*2) uses Op50b0 ---------- -Op50b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50b8] addq.l #8, $3333.w uses Op50b8 ---------- -Op50b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50b9] addq.l #8, $33333333.l uses Op50b9 ---------- -Op50b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50c0] st d0 uses Op50c0 ---------- -Op50c0: - mvn r1,#0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50c8] dbt d0, 3335 uses Op50c8 ---------- -Op50c8: -;@ condition true: -DbraTrue: - add r4,r4,#2 ;@ Skip branch offset - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50d0] st (a0) uses Op50d0 ---------- -Op50d0: - mvn r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50d8] st (a0)+ uses Op50d8 ---------- -Op50d8: - mvn r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50df] st (a7)+ uses Op50df ---------- -Op50df: - mvn r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50e0] st -(a0) uses Op50e0 ---------- -Op50e0: - mvn r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50e7] st -(a7) uses Op50e7 ---------- -Op50e7: - mvn r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50e8] st ($3333,a0) uses Op50e8 ---------- -Op50e8: - mvn r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50f0] st ($33,a0,d3.w*2) uses Op50f0 ---------- -Op50f0: - mvn r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50f8] st $3333.w uses Op50f8 ---------- -Op50f8: - mvn r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50f9] st $33333333.l uses Op50f9 ---------- -Op50f9: - mvn r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5100] subq.b #8, d0 uses Op5100 ---------- -Op5100: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5110] subq.b #8, (a0) uses Op5110 ---------- -Op5110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5118] subq.b #8, (a0)+ uses Op5118 ---------- -Op5118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [511f] subq.b #8, (a7)+ uses Op511f ---------- -Op511f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5120] subq.b #8, -(a0) uses Op5120 ---------- -Op5120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5127] subq.b #8, -(a7) uses Op5127 ---------- -Op5127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5128] subq.b #8, ($3333,a0) uses Op5128 ---------- -Op5128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5130] subq.b #8, ($33,a0,d3.w*2) uses Op5130 ---------- -Op5130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5138] subq.b #8, $3333.w uses Op5138 ---------- -Op5138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5139] subq.b #8, $33333333.l uses Op5139 ---------- -Op5139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5140] subq.w #8, d0 uses Op5140 ---------- -Op5140: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5148] subq.w #8, a0 uses Op5148 ---------- -Op5148: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - subs r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5150] subq.w #8, (a0) uses Op5150 ---------- -Op5150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5158] subq.w #8, (a0)+ uses Op5158 ---------- -Op5158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5160] subq.w #8, -(a0) uses Op5160 ---------- -Op5160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5168] subq.w #8, ($3333,a0) uses Op5168 ---------- -Op5168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5170] subq.w #8, ($33,a0,d3.w*2) uses Op5170 ---------- -Op5170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5178] subq.w #8, $3333.w uses Op5178 ---------- -Op5178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5179] subq.w #8, $33333333.l uses Op5179 ---------- -Op5179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5180] subq.l #8, d0 uses Op5180 ---------- -Op5180: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5188] subq.l #8, a0 uses Op5188 ---------- -Op5188: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - subs r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5190] subq.l #8, (a0) uses Op5190 ---------- -Op5190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5198] subq.l #8, (a0)+ uses Op5198 ---------- -Op5198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51a0] subq.l #8, -(a0) uses Op51a0 ---------- -Op51a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51a8] subq.l #8, ($3333,a0) uses Op51a8 ---------- -Op51a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51b0] subq.l #8, ($33,a0,d3.w*2) uses Op51b0 ---------- -Op51b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51b8] subq.l #8, $3333.w uses Op51b8 ---------- -Op51b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51b9] subq.l #8, $33333333.l uses Op51b9 ---------- -Op51b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51c0] sf d0 uses Op51c0 ---------- -Op51c0: - mov r1,#0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51d0] sf (a0) uses Op51d0 ---------- -Op51d0: - mov r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51d8] sf (a0)+ uses Op51d8 ---------- -Op51d8: - mov r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51df] sf (a7)+ uses Op51df ---------- -Op51df: - mov r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51e0] sf -(a0) uses Op51e0 ---------- -Op51e0: - mov r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51e7] sf -(a7) uses Op51e7 ---------- -Op51e7: - mov r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51e8] sf ($3333,a0) uses Op51e8 ---------- -Op51e8: - mov r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51f0] sf ($33,a0,d3.w*2) uses Op51f0 ---------- -Op51f0: - mov r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51f8] sf $3333.w uses Op51f8 ---------- -Op51f8: - mov r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51f9] sf $33333333.l uses Op51f9 ---------- -Op51f9: - mov r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52c0] shi d0 uses Op52c0 ---------- -Op52c0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52c8] dbhi d0, 3335 uses Op52c8 ---------- -Op52c8: -;@ Is the condition true? - tst r10,#0x60000000 ;@ hi: !C && !Z -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52d0] shi (a0) uses Op52d0 ---------- -Op52d0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52d8] shi (a0)+ uses Op52d8 ---------- -Op52d8: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52df] shi (a7)+ uses Op52df ---------- -Op52df: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52e0] shi -(a0) uses Op52e0 ---------- -Op52e0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52e7] shi -(a7) uses Op52e7 ---------- -Op52e7: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52e8] shi ($3333,a0) uses Op52e8 ---------- -Op52e8: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52f0] shi ($33,a0,d3.w*2) uses Op52f0 ---------- -Op52f0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52f8] shi $3333.w uses Op52f8 ---------- -Op52f8: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52f9] shi $33333333.l uses Op52f9 ---------- -Op52f9: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53c0] sls d0 uses Op53c0 ---------- -Op53c0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53c8] dbls d0, 3335 uses Op53c8 ---------- -Op53c8: -;@ Is the condition true? - tst r10,#0x60000000 ;@ ls: C || Z -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53d0] sls (a0) uses Op53d0 ---------- -Op53d0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53d8] sls (a0)+ uses Op53d8 ---------- -Op53d8: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53df] sls (a7)+ uses Op53df ---------- -Op53df: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53e0] sls -(a0) uses Op53e0 ---------- -Op53e0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53e7] sls -(a7) uses Op53e7 ---------- -Op53e7: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53e8] sls ($3333,a0) uses Op53e8 ---------- -Op53e8: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53f0] sls ($33,a0,d3.w*2) uses Op53f0 ---------- -Op53f0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53f8] sls $3333.w uses Op53f8 ---------- -Op53f8: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53f9] sls $33333333.l uses Op53f9 ---------- -Op53f9: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54c0] scc d0 uses Op54c0 ---------- -Op54c0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54c8] dbcc d0, 3335 uses Op54c8 ---------- -Op54c8: -;@ Is the condition true? - tst r10,#0x20000000 ;@ cc: !C -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54d0] scc (a0) uses Op54d0 ---------- -Op54d0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54d8] scc (a0)+ uses Op54d8 ---------- -Op54d8: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54df] scc (a7)+ uses Op54df ---------- -Op54df: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54e0] scc -(a0) uses Op54e0 ---------- -Op54e0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54e7] scc -(a7) uses Op54e7 ---------- -Op54e7: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54e8] scc ($3333,a0) uses Op54e8 ---------- -Op54e8: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54f0] scc ($33,a0,d3.w*2) uses Op54f0 ---------- -Op54f0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54f8] scc $3333.w uses Op54f8 ---------- -Op54f8: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54f9] scc $33333333.l uses Op54f9 ---------- -Op54f9: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55c0] scs d0 uses Op55c0 ---------- -Op55c0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55c8] dbcs d0, 3335 uses Op55c8 ---------- -Op55c8: -;@ Is the condition true? - tst r10,#0x20000000 ;@ cs: C -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55d0] scs (a0) uses Op55d0 ---------- -Op55d0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55d8] scs (a0)+ uses Op55d8 ---------- -Op55d8: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55df] scs (a7)+ uses Op55df ---------- -Op55df: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55e0] scs -(a0) uses Op55e0 ---------- -Op55e0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55e7] scs -(a7) uses Op55e7 ---------- -Op55e7: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55e8] scs ($3333,a0) uses Op55e8 ---------- -Op55e8: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55f0] scs ($33,a0,d3.w*2) uses Op55f0 ---------- -Op55f0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55f8] scs $3333.w uses Op55f8 ---------- -Op55f8: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55f9] scs $33333333.l uses Op55f9 ---------- -Op55f9: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56c0] sne d0 uses Op56c0 ---------- -Op56c0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56c8] dbne d0, 3335 uses Op56c8 ---------- -Op56c8: -;@ Is the condition true? - tst r10,#0x40000000 ;@ ne: !Z -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56d0] sne (a0) uses Op56d0 ---------- -Op56d0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56d8] sne (a0)+ uses Op56d8 ---------- -Op56d8: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56df] sne (a7)+ uses Op56df ---------- -Op56df: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56e0] sne -(a0) uses Op56e0 ---------- -Op56e0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56e7] sne -(a7) uses Op56e7 ---------- -Op56e7: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56e8] sne ($3333,a0) uses Op56e8 ---------- -Op56e8: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56f0] sne ($33,a0,d3.w*2) uses Op56f0 ---------- -Op56f0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56f8] sne $3333.w uses Op56f8 ---------- -Op56f8: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56f9] sne $33333333.l uses Op56f9 ---------- -Op56f9: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57c0] seq d0 uses Op57c0 ---------- -Op57c0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57c8] dbeq d0, 3335 uses Op57c8 ---------- -Op57c8: -;@ Is the condition true? - tst r10,#0x40000000 ;@ eq: Z -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57d0] seq (a0) uses Op57d0 ---------- -Op57d0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57d8] seq (a0)+ uses Op57d8 ---------- -Op57d8: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57df] seq (a7)+ uses Op57df ---------- -Op57df: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57e0] seq -(a0) uses Op57e0 ---------- -Op57e0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57e7] seq -(a7) uses Op57e7 ---------- -Op57e7: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57e8] seq ($3333,a0) uses Op57e8 ---------- -Op57e8: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57f0] seq ($33,a0,d3.w*2) uses Op57f0 ---------- -Op57f0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57f8] seq $3333.w uses Op57f8 ---------- -Op57f8: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57f9] seq $33333333.l uses Op57f9 ---------- -Op57f9: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58c0] svc d0 uses Op58c0 ---------- -Op58c0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58c8] dbvc d0, 3335 uses Op58c8 ---------- -Op58c8: -;@ Is the condition true? - tst r10,#0x10000000 ;@ vc: !V -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58d0] svc (a0) uses Op58d0 ---------- -Op58d0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58d8] svc (a0)+ uses Op58d8 ---------- -Op58d8: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58df] svc (a7)+ uses Op58df ---------- -Op58df: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58e0] svc -(a0) uses Op58e0 ---------- -Op58e0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58e7] svc -(a7) uses Op58e7 ---------- -Op58e7: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58e8] svc ($3333,a0) uses Op58e8 ---------- -Op58e8: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58f0] svc ($33,a0,d3.w*2) uses Op58f0 ---------- -Op58f0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58f8] svc $3333.w uses Op58f8 ---------- -Op58f8: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58f9] svc $33333333.l uses Op58f9 ---------- -Op58f9: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59c0] svs d0 uses Op59c0 ---------- -Op59c0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59c8] dbvs d0, 3335 uses Op59c8 ---------- -Op59c8: -;@ Is the condition true? - tst r10,#0x10000000 ;@ vs: V -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59d0] svs (a0) uses Op59d0 ---------- -Op59d0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59d8] svs (a0)+ uses Op59d8 ---------- -Op59d8: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59df] svs (a7)+ uses Op59df ---------- -Op59df: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59e0] svs -(a0) uses Op59e0 ---------- -Op59e0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59e7] svs -(a7) uses Op59e7 ---------- -Op59e7: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59e8] svs ($3333,a0) uses Op59e8 ---------- -Op59e8: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59f0] svs ($33,a0,d3.w*2) uses Op59f0 ---------- -Op59f0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59f8] svs $3333.w uses Op59f8 ---------- -Op59f8: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59f9] svs $33333333.l uses Op59f9 ---------- -Op59f9: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ac0] spl d0 uses Op5ac0 ---------- -Op5ac0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - subpl r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ac8] dbpl d0, 3335 uses Op5ac8 ---------- -Op5ac8: -;@ Is the condition true? - tst r10,r10 ;@ pl: !N -;@ If so, don't dbra - bpl DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ad0] spl (a0) uses Op5ad0 ---------- -Op5ad0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ad8] spl (a0)+ uses Op5ad8 ---------- -Op5ad8: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5adf] spl (a7)+ uses Op5adf ---------- -Op5adf: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ae0] spl -(a0) uses Op5ae0 ---------- -Op5ae0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ae7] spl -(a7) uses Op5ae7 ---------- -Op5ae7: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ae8] spl ($3333,a0) uses Op5ae8 ---------- -Op5ae8: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5af0] spl ($33,a0,d3.w*2) uses Op5af0 ---------- -Op5af0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5af8] spl $3333.w uses Op5af8 ---------- -Op5af8: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5af9] spl $33333333.l uses Op5af9 ---------- -Op5af9: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bc0] smi d0 uses Op5bc0 ---------- -Op5bc0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - submi r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bc8] dbmi d0, 3335 uses Op5bc8 ---------- -Op5bc8: -;@ Is the condition true? - tst r10,r10 ;@ mi: N -;@ If so, don't dbra - bmi DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bd0] smi (a0) uses Op5bd0 ---------- -Op5bd0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bd8] smi (a0)+ uses Op5bd8 ---------- -Op5bd8: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bdf] smi (a7)+ uses Op5bdf ---------- -Op5bdf: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5be0] smi -(a0) uses Op5be0 ---------- -Op5be0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5be7] smi -(a7) uses Op5be7 ---------- -Op5be7: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5be8] smi ($3333,a0) uses Op5be8 ---------- -Op5be8: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bf0] smi ($33,a0,d3.w*2) uses Op5bf0 ---------- -Op5bf0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bf8] smi $3333.w uses Op5bf8 ---------- -Op5bf8: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bf9] smi $33333333.l uses Op5bf9 ---------- -Op5bf9: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cc0] sge d0 uses Op5cc0 ---------- -Op5cc0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - subpl r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cc8] dbge d0, 3335 uses Op5cc8 ---------- -Op5cc8: -;@ Is the condition true? - teq r10,r10,lsl #3 ;@ ge: N == V -;@ If so, don't dbra - bpl DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cd0] sge (a0) uses Op5cd0 ---------- -Op5cd0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cd8] sge (a0)+ uses Op5cd8 ---------- -Op5cd8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cdf] sge (a7)+ uses Op5cdf ---------- -Op5cdf: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ce0] sge -(a0) uses Op5ce0 ---------- -Op5ce0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ce7] sge -(a7) uses Op5ce7 ---------- -Op5ce7: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ce8] sge ($3333,a0) uses Op5ce8 ---------- -Op5ce8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cf0] sge ($33,a0,d3.w*2) uses Op5cf0 ---------- -Op5cf0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cf8] sge $3333.w uses Op5cf8 ---------- -Op5cf8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cf9] sge $33333333.l uses Op5cf9 ---------- -Op5cf9: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dc0] slt d0 uses Op5dc0 ---------- -Op5dc0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - submi r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dc8] dblt d0, 3335 uses Op5dc8 ---------- -Op5dc8: -;@ Is the condition true? - teq r10,r10,lsl #3 ;@ lt: N != V -;@ If so, don't dbra - bmi DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dd0] slt (a0) uses Op5dd0 ---------- -Op5dd0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dd8] slt (a0)+ uses Op5dd8 ---------- -Op5dd8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ddf] slt (a7)+ uses Op5ddf ---------- -Op5ddf: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5de0] slt -(a0) uses Op5de0 ---------- -Op5de0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5de7] slt -(a7) uses Op5de7 ---------- -Op5de7: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5de8] slt ($3333,a0) uses Op5de8 ---------- -Op5de8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5df0] slt ($33,a0,d3.w*2) uses Op5df0 ---------- -Op5df0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5df8] slt $3333.w uses Op5df8 ---------- -Op5df8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5df9] slt $33333333.l uses Op5df9 ---------- -Op5df9: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e00] addq.b #7, d0 uses Op5e00 ---------- -Op5e00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e10] addq.b #7, (a0) uses Op5e10 ---------- -Op5e10: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e18] addq.b #7, (a0)+ uses Op5e18 ---------- -Op5e18: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e1f] addq.b #7, (a7)+ uses Op5e1f ---------- -Op5e1f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e20] addq.b #7, -(a0) uses Op5e20 ---------- -Op5e20: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e27] addq.b #7, -(a7) uses Op5e27 ---------- -Op5e27: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e28] addq.b #7, ($3333,a0) uses Op5e28 ---------- -Op5e28: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e30] addq.b #7, ($33,a0,d3.w*2) uses Op5e30 ---------- -Op5e30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e38] addq.b #7, $3333.w uses Op5e38 ---------- -Op5e38: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e39] addq.b #7, $33333333.l uses Op5e39 ---------- -Op5e39: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e48] addq.w #7, a0 uses Op5e48 ---------- -Op5e48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e50] addq.w #7, (a0) uses Op5e50 ---------- -Op5e50: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e58] addq.w #7, (a0)+ uses Op5e58 ---------- -Op5e58: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e60] addq.w #7, -(a0) uses Op5e60 ---------- -Op5e60: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e68] addq.w #7, ($3333,a0) uses Op5e68 ---------- -Op5e68: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e70] addq.w #7, ($33,a0,d3.w*2) uses Op5e70 ---------- -Op5e70: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e78] addq.w #7, $3333.w uses Op5e78 ---------- -Op5e78: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e79] addq.w #7, $33333333.l uses Op5e79 ---------- -Op5e79: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e80] addq.l #7, d0 uses Op5e80 ---------- -Op5e80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e88] addq.l #7, a0 uses Op5e88 ---------- -Op5e88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e90] addq.l #7, (a0) uses Op5e90 ---------- -Op5e90: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e98] addq.l #7, (a0)+ uses Op5e98 ---------- -Op5e98: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ea0] addq.l #7, -(a0) uses Op5ea0 ---------- -Op5ea0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ea8] addq.l #7, ($3333,a0) uses Op5ea8 ---------- -Op5ea8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5eb0] addq.l #7, ($33,a0,d3.w*2) uses Op5eb0 ---------- -Op5eb0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5eb8] addq.l #7, $3333.w uses Op5eb8 ---------- -Op5eb8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5eb9] addq.l #7, $33333333.l uses Op5eb9 ---------- -Op5eb9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ec0] sgt d0 uses Op5ec0 ---------- -Op5ec0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - subpl r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ec8] dbgt d0, 3335 uses Op5ec8 ---------- -Op5ec8: -;@ Is the condition true? - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 -;@ If so, don't dbra - bpl DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ed0] sgt (a0) uses Op5ed0 ---------- -Op5ed0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ed8] sgt (a0)+ uses Op5ed8 ---------- -Op5ed8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5edf] sgt (a7)+ uses Op5edf ---------- -Op5edf: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ee0] sgt -(a0) uses Op5ee0 ---------- -Op5ee0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ee7] sgt -(a7) uses Op5ee7 ---------- -Op5ee7: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ee8] sgt ($3333,a0) uses Op5ee8 ---------- -Op5ee8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ef0] sgt ($33,a0,d3.w*2) uses Op5ef0 ---------- -Op5ef0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ef8] sgt $3333.w uses Op5ef8 ---------- -Op5ef8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ef9] sgt $33333333.l uses Op5ef9 ---------- -Op5ef9: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f00] subq.b #7, d0 uses Op5f00 ---------- -Op5f00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f10] subq.b #7, (a0) uses Op5f10 ---------- -Op5f10: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f18] subq.b #7, (a0)+ uses Op5f18 ---------- -Op5f18: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f1f] subq.b #7, (a7)+ uses Op5f1f ---------- -Op5f1f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f20] subq.b #7, -(a0) uses Op5f20 ---------- -Op5f20: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f27] subq.b #7, -(a7) uses Op5f27 ---------- -Op5f27: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f28] subq.b #7, ($3333,a0) uses Op5f28 ---------- -Op5f28: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f30] subq.b #7, ($33,a0,d3.w*2) uses Op5f30 ---------- -Op5f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f38] subq.b #7, $3333.w uses Op5f38 ---------- -Op5f38: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f39] subq.b #7, $33333333.l uses Op5f39 ---------- -Op5f39: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f40] subq.w #7, d0 uses Op5f40 ---------- -Op5f40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f48] subq.w #7, a0 uses Op5f48 ---------- -Op5f48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f50] subq.w #7, (a0) uses Op5f50 ---------- -Op5f50: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f58] subq.w #7, (a0)+ uses Op5f58 ---------- -Op5f58: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f60] subq.w #7, -(a0) uses Op5f60 ---------- -Op5f60: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f68] subq.w #7, ($3333,a0) uses Op5f68 ---------- -Op5f68: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f70] subq.w #7, ($33,a0,d3.w*2) uses Op5f70 ---------- -Op5f70: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f78] subq.w #7, $3333.w uses Op5f78 ---------- -Op5f78: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f79] subq.w #7, $33333333.l uses Op5f79 ---------- -Op5f79: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f80] subq.l #7, d0 uses Op5f80 ---------- -Op5f80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f88] subq.l #7, a0 uses Op5f88 ---------- -Op5f88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f90] subq.l #7, (a0) uses Op5f90 ---------- -Op5f90: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f98] subq.l #7, (a0)+ uses Op5f98 ---------- -Op5f98: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fa0] subq.l #7, -(a0) uses Op5fa0 ---------- -Op5fa0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fa8] subq.l #7, ($3333,a0) uses Op5fa8 ---------- -Op5fa8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fb0] subq.l #7, ($33,a0,d3.w*2) uses Op5fb0 ---------- -Op5fb0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fb8] subq.l #7, $3333.w uses Op5fb8 ---------- -Op5fb8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fb9] subq.l #7, $33333333.l uses Op5fb9 ---------- -Op5fb9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fc0] sle d0 uses Op5fc0 ---------- -Op5fc0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - submi r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fc8] dble d0, 3335 uses Op5fc8 ---------- -Op5fc8: -;@ Is the condition true? - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 -;@ If so, don't dbra - bmi DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fd0] sle (a0) uses Op5fd0 ---------- -Op5fd0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fd8] sle (a0)+ uses Op5fd8 ---------- -Op5fd8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fdf] sle (a7)+ uses Op5fdf ---------- -Op5fdf: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fe0] sle -(a0) uses Op5fe0 ---------- -Op5fe0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fe7] sle -(a7) uses Op5fe7 ---------- -Op5fe7: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fe8] sle ($3333,a0) uses Op5fe8 ---------- -Op5fe8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ff0] sle ($33,a0,d3.w*2) uses Op5ff0 ---------- -Op5ff0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ff8] sle $3333.w uses Op5ff8 ---------- -Op5ff8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ff9] sle $33333333.l uses Op5ff9 ---------- -Op5ff9: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6000] bra 3335 uses Op6000 ---------- -Op6000: - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6003] bra 5 uses Op6003 ---------- -Op6003: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6103] bsr 5 uses Op6103 ---------- -Op6103: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC -;@ Bsr - remember old PC - ldr r12,[r7,#0x60] ;@ Get Memory base - ldr r2,[r7,#0x3c] - sub r1,r4,r12 ;@ r1 = Old PC - -;@ Push r1 onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6200] bhi 3335 uses Op6200 ---------- -Op6200: - tst r10,#0x60000000 ;@ hi: !C && !Z - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6202] bhi 4 uses Op6202 ---------- -Op6202: - tst r10,#0x60000000 ;@ hi: !C && !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6203] bhi 5 uses Op6203 ---------- -Op6203: - tst r10,#0x60000000 ;@ hi: !C && !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6300] bls 3335 uses Op6300 ---------- -Op6300: - tst r10,#0x60000000 ;@ ls: C || Z - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6302] bls 4 uses Op6302 ---------- -Op6302: - tst r10,#0x60000000 ;@ ls: C || Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6303] bls 5 uses Op6303 ---------- -Op6303: - tst r10,#0x60000000 ;@ ls: C || Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6400] bcc 3335 uses Op6400 ---------- -Op6400: - tst r10,#0x20000000 ;@ cc: !C - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6403] bcc 5 uses Op6403 ---------- -Op6403: - tst r10,#0x20000000 ;@ cc: !C - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6503] bcs 5 uses Op6503 ---------- -Op6503: - tst r10,#0x20000000 ;@ cs: C - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6600] bne 3335 uses Op6600 ---------- -Op6600: - tst r10,#0x40000000 ;@ ne: !Z - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6603] bne 5 uses Op6603 ---------- -Op6603: - tst r10,#0x40000000 ;@ ne: !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6703] beq 5 uses Op6703 ---------- -Op6703: - tst r10,#0x40000000 ;@ eq: Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6800] bvc 3335 uses Op6800 ---------- -Op6800: - tst r10,#0x10000000 ;@ vc: !V - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6802] bvc 4 uses Op6802 ---------- -Op6802: - tst r10,#0x10000000 ;@ vc: !V - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6803] bvc 5 uses Op6803 ---------- -Op6803: - tst r10,#0x10000000 ;@ vc: !V - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6900] bvs 3335 uses Op6900 ---------- -Op6900: - tst r10,#0x10000000 ;@ vs: V - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6902] bvs 4 uses Op6902 ---------- -Op6902: - tst r10,#0x10000000 ;@ vs: V - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6903] bvs 5 uses Op6903 ---------- -Op6903: - tst r10,#0x10000000 ;@ vs: V - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6a00] bpl 3335 uses Op6a00 ---------- -Op6a00: - tst r10,r10 ;@ pl: !N - bmi BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6a03] bpl 5 uses Op6a03 ---------- -Op6a03: - tst r10,r10 ;@ pl: !N - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6b00] bmi 3335 uses Op6b00 ---------- -Op6b00: - tst r10,r10 ;@ mi: N - bpl BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6b02] bmi 4 uses Op6b02 ---------- -Op6b02: - tst r10,r10 ;@ mi: N - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6b03] bmi 5 uses Op6b03 ---------- -Op6b03: - tst r10,r10 ;@ mi: N - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6c00] bge 3335 uses Op6c00 ---------- -Op6c00: - teq r10,r10,lsl #3 ;@ ge: N == V - bmi BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6c02] bge 4 uses Op6c02 ---------- -Op6c02: - teq r10,r10,lsl #3 ;@ ge: N == V - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6c03] bge 5 uses Op6c03 ---------- -Op6c03: - teq r10,r10,lsl #3 ;@ ge: N == V - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6d00] blt 3335 uses Op6d00 ---------- -Op6d00: - teq r10,r10,lsl #3 ;@ lt: N != V - bpl BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6d02] blt 4 uses Op6d02 ---------- -Op6d02: - teq r10,r10,lsl #3 ;@ lt: N != V - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6d03] blt 5 uses Op6d03 ---------- -Op6d03: - teq r10,r10,lsl #3 ;@ lt: N != V - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6e00] bgt 3335 uses Op6e00 ---------- -Op6e00: - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - bmi BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6e02] bgt 4 uses Op6e02 ---------- -Op6e02: - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6e03] bgt 5 uses Op6e03 ---------- -Op6e03: - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6f00] ble 3335 uses Op6f00 ---------- -Op6f00: - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - bpl BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6f02] ble 4 uses Op6f02 ---------- -Op6f02: - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6f03] ble 5 uses Op6f03 ---------- -Op6f03: - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8000] or.b d0, d0 uses Op8000 ---------- -Op8000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8010] or.b (a0), d0 uses Op8010 ---------- -Op8010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8018] or.b (a0)+, d0 uses Op8018 ---------- -Op8018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [801f] or.b (a7)+, d0 uses Op801f ---------- -Op801f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8020] or.b -(a0), d0 uses Op8020 ---------- -Op8020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8027] or.b -(a7), d0 uses Op8027 ---------- -Op8027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8028] or.b ($3333,a0), d0 uses Op8028 ---------- -Op8028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8030] or.b ($33,a0,d3.w*2), d0 uses Op8030 ---------- -Op8030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8038] or.b $3333.w, d0 uses Op8038 ---------- -Op8038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8039] or.b $33333333.l, d0 uses Op8039 ---------- -Op8039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [803a] or.b ($3333,pc), d0; =3335 uses Op803a ---------- -Op803a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [803b] or.b ($33,pc,d3.w*2), d0; =35 uses Op803b ---------- -Op803b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [803c] or.b #$33, d0 uses Op803c ---------- -Op803c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8040] or.w d0, d0 uses Op8040 ---------- -Op8040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8050] or.w (a0), d0 uses Op8050 ---------- -Op8050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8058] or.w (a0)+, d0 uses Op8058 ---------- -Op8058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8060] or.w -(a0), d0 uses Op8060 ---------- -Op8060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8068] or.w ($3333,a0), d0 uses Op8068 ---------- -Op8068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8070] or.w ($33,a0,d3.w*2), d0 uses Op8070 ---------- -Op8070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8078] or.w $3333.w, d0 uses Op8078 ---------- -Op8078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8079] or.w $33333333.l, d0 uses Op8079 ---------- -Op8079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [807a] or.w ($3333,pc), d0; =3335 uses Op807a ---------- -Op807a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [807b] or.w ($33,pc,d3.w*2), d0; =35 uses Op807b ---------- -Op807b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [807c] or.w #$3333, d0 uses Op807c ---------- -Op807c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8080] or.l d0, d0 uses Op8080 ---------- -Op8080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8090] or.l (a0), d0 uses Op8090 ---------- -Op8090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8098] or.l (a0)+, d0 uses Op8098 ---------- -Op8098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80a0] or.l -(a0), d0 uses Op80a0 ---------- -Op80a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80a8] or.l ($3333,a0), d0 uses Op80a8 ---------- -Op80a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80b0] or.l ($33,a0,d3.w*2), d0 uses Op80b0 ---------- -Op80b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80b8] or.l $3333.w, d0 uses Op80b8 ---------- -Op80b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80b9] or.l $33333333.l, d0 uses Op80b9 ---------- -Op80b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80ba] or.l ($3333,pc), d0; =3335 uses Op80ba ---------- -Op80ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80bb] or.l ($33,pc,d3.w*2), d0; =35 uses Op80bb ---------- -Op80bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80bc] or.l #$33333333, d0 uses Op80bc ---------- -Op80bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80c0] divu.w d0, d0 uses Op80c0 ---------- -Op80c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80c0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80c0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80c0 - -Divide80c0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80c0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80c0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80c0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#140 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80c0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#178 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80d0] divu.w (a0), d0 uses Op80d0 ---------- -Op80d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80d0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80d0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80d0 - -Divide80d0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80d0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80d0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80d0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#144 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80d0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#182 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80d8] divu.w (a0)+, d0 uses Op80d8 ---------- -Op80d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80d8 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80d8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80d8 - -Divide80d8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80d8 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80d8 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80d8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#144 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80d8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#182 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80e0] divu.w -(a0), d0 uses Op80e0 ---------- -Op80e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80e0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80e0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80e0 - -Divide80e0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80e0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80e0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80e0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#146 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80e0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#184 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80e8] divu.w ($3333,a0), d0 uses Op80e8 ---------- -Op80e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80e8 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80e8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80e8 - -Divide80e8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80e8 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80e8 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80e8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#148 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80e8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#186 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80f0] divu.w ($33,a0,d3.w*2), d0 uses Op80f0 ---------- -Op80f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80f0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80f0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80f0 - -Divide80f0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80f0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80f0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80f0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#150 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80f0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#188 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80f8] divu.w $3333.w, d0 uses Op80f8 ---------- -Op80f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80f8 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80f8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80f8 - -Divide80f8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80f8 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80f8 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80f8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#148 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80f8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#186 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80f9] divu.w $33333333.l, d0 uses Op80f9 ---------- -Op80f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80f9 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80f9: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80f9 - -Divide80f9: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80f9 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80f9 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80f9: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#152 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80f9: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#190 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80fa] divu.w ($3333,pc), d0; =3335 uses Op80fa ---------- -Op80fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80fa ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80fa: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80fa - -Divide80fa: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80fa - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80fa ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80fa: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#148 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80fa: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#186 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80fb] divu.w ($33,pc,d3.w*2), d0; =35 uses Op80fb ---------- -Op80fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80fb ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80fb: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80fb - -Divide80fb: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80fb - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80fb ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80fb: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#150 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80fb: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#188 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80fc] divu.w #$3333, d0 uses Op80fc ---------- -Op80fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80fc ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80fc: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80fc - -Divide80fc: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80fc - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80fc ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80fc: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#144 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80fc: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#182 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [8100] sbcd d0, d0 uses Op8100 ---------- -Op8100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8108] sbcd -(a0), -(a0) uses Op8108 ---------- -Op8108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [810f] sbcd -(a7), -(a0) uses Op810f ---------- -Op810f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8110] or.b d0, (a0) uses Op8110 ---------- -Op8110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8118] or.b d0, (a0)+ uses Op8118 ---------- -Op8118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [811f] or.b d0, (a7)+ uses Op811f ---------- -Op811f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8120] or.b d0, -(a0) uses Op8120 ---------- -Op8120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8127] or.b d0, -(a7) uses Op8127 ---------- -Op8127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8128] or.b d0, ($3333,a0) uses Op8128 ---------- -Op8128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8130] or.b d0, ($33,a0,d3.w*2) uses Op8130 ---------- -Op8130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8138] or.b d0, $3333.w uses Op8138 ---------- -Op8138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8139] or.b d0, $33333333.l uses Op8139 ---------- -Op8139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8150] or.w d0, (a0) uses Op8150 ---------- -Op8150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8158] or.w d0, (a0)+ uses Op8158 ---------- -Op8158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8160] or.w d0, -(a0) uses Op8160 ---------- -Op8160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8168] or.w d0, ($3333,a0) uses Op8168 ---------- -Op8168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8170] or.w d0, ($33,a0,d3.w*2) uses Op8170 ---------- -Op8170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8178] or.w d0, $3333.w uses Op8178 ---------- -Op8178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8179] or.w d0, $33333333.l uses Op8179 ---------- -Op8179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8190] or.l d0, (a0) uses Op8190 ---------- -Op8190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8198] or.l d0, (a0)+ uses Op8198 ---------- -Op8198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81a0] or.l d0, -(a0) uses Op81a0 ---------- -Op81a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81a8] or.l d0, ($3333,a0) uses Op81a8 ---------- -Op81a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81b0] or.l d0, ($33,a0,d3.w*2) uses Op81b0 ---------- -Op81b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81b8] or.l d0, $3333.w uses Op81b8 ---------- -Op81b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81b9] or.l d0, $33333333.l uses Op81b9 ---------- -Op81b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81c0] divs.w d0, d0 uses Op81c0 ---------- -Op81c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81c0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81c0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81c0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81c0 - -Divide81c0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81c0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81c0 ;@ overflow! - -wrendofop81c0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81c0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#158 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81c0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#196 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81d0] divs.w (a0), d0 uses Op81d0 ---------- -Op81d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81d0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81d0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81d0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81d0 - -Divide81d0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81d0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81d0 ;@ overflow! - -wrendofop81d0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81d0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#162 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81d0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#200 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81d8] divs.w (a0)+, d0 uses Op81d8 ---------- -Op81d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81d8 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81d8 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81d8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81d8 - -Divide81d8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81d8 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81d8 ;@ overflow! - -wrendofop81d8: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81d8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#162 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81d8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#200 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81e0] divs.w -(a0), d0 uses Op81e0 ---------- -Op81e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81e0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81e0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81e0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81e0 - -Divide81e0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81e0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81e0 ;@ overflow! - -wrendofop81e0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81e0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#164 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81e0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#202 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81e8] divs.w ($3333,a0), d0 uses Op81e8 ---------- -Op81e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81e8 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81e8 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81e8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81e8 - -Divide81e8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81e8 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81e8 ;@ overflow! - -wrendofop81e8: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81e8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#166 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81e8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#204 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81f0] divs.w ($33,a0,d3.w*2), d0 uses Op81f0 ---------- -Op81f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81f0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81f0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81f0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81f0 - -Divide81f0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81f0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81f0 ;@ overflow! - -wrendofop81f0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81f0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#168 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81f0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#206 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81f8] divs.w $3333.w, d0 uses Op81f8 ---------- -Op81f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81f8 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81f8 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81f8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81f8 - -Divide81f8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81f8 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81f8 ;@ overflow! - -wrendofop81f8: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81f8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#166 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81f8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#204 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81f9] divs.w $33333333.l, d0 uses Op81f9 ---------- -Op81f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81f9 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81f9 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81f9: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81f9 - -Divide81f9: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81f9 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81f9 ;@ overflow! - -wrendofop81f9: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81f9: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#170 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81f9: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#208 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81fa] divs.w ($3333,pc), d0; =3335 uses Op81fa ---------- -Op81fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81fa ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81fa - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81fa: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81fa - -Divide81fa: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81fa - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81fa ;@ overflow! - -wrendofop81fa: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81fa: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#166 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81fa: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#204 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81fb] divs.w ($33,pc,d3.w*2), d0; =35 uses Op81fb ---------- -Op81fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81fb ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81fb - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81fb: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81fb - -Divide81fb: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81fb - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81fb ;@ overflow! - -wrendofop81fb: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81fb: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#168 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81fb: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#206 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81fc] divs.w #$3333, d0 uses Op81fc ---------- -Op81fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81fc ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81fc - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81fc: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81fc - -Divide81fc: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81fc - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81fc ;@ overflow! - -wrendofop81fc: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81fc: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#162 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81fc: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#200 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [8f08] sbcd -(a0), -(a7) uses Op8f08 ---------- -Op8f08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8f0f] sbcd -(a7), -(a7) uses Op8f0f ---------- -Op8f0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9000] sub.b d0, d0 uses Op9000 ---------- -Op9000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9010] sub.b (a0), d0 uses Op9010 ---------- -Op9010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9018] sub.b (a0)+, d0 uses Op9018 ---------- -Op9018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [901f] sub.b (a7)+, d0 uses Op901f ---------- -Op901f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9020] sub.b -(a0), d0 uses Op9020 ---------- -Op9020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9027] sub.b -(a7), d0 uses Op9027 ---------- -Op9027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9028] sub.b ($3333,a0), d0 uses Op9028 ---------- -Op9028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9030] sub.b ($33,a0,d3.w*2), d0 uses Op9030 ---------- -Op9030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9038] sub.b $3333.w, d0 uses Op9038 ---------- -Op9038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9039] sub.b $33333333.l, d0 uses Op9039 ---------- -Op9039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [903a] sub.b ($3333,pc), d0; =3335 uses Op903a ---------- -Op903a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [903b] sub.b ($33,pc,d3.w*2), d0; =35 uses Op903b ---------- -Op903b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [903c] sub.b #$33, d0 uses Op903c ---------- -Op903c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9040] sub.w d0, d0 uses Op9040 ---------- -Op9040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9050] sub.w (a0), d0 uses Op9050 ---------- -Op9050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9058] sub.w (a0)+, d0 uses Op9058 ---------- -Op9058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9060] sub.w -(a0), d0 uses Op9060 ---------- -Op9060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9068] sub.w ($3333,a0), d0 uses Op9068 ---------- -Op9068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9070] sub.w ($33,a0,d3.w*2), d0 uses Op9070 ---------- -Op9070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9078] sub.w $3333.w, d0 uses Op9078 ---------- -Op9078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9079] sub.w $33333333.l, d0 uses Op9079 ---------- -Op9079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [907a] sub.w ($3333,pc), d0; =3335 uses Op907a ---------- -Op907a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [907b] sub.w ($33,pc,d3.w*2), d0; =35 uses Op907b ---------- -Op907b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [907c] sub.w #$3333, d0 uses Op907c ---------- -Op907c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9080] sub.l d0, d0 uses Op9080 ---------- -Op9080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9090] sub.l (a0), d0 uses Op9090 ---------- -Op9090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9098] sub.l (a0)+, d0 uses Op9098 ---------- -Op9098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90a0] sub.l -(a0), d0 uses Op90a0 ---------- -Op90a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90a8] sub.l ($3333,a0), d0 uses Op90a8 ---------- -Op90a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90b0] sub.l ($33,a0,d3.w*2), d0 uses Op90b0 ---------- -Op90b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90b8] sub.l $3333.w, d0 uses Op90b8 ---------- -Op90b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90b9] sub.l $33333333.l, d0 uses Op90b9 ---------- -Op90b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90ba] sub.l ($3333,pc), d0; =3335 uses Op90ba ---------- -Op90ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90bb] sub.l ($33,pc,d3.w*2), d0; =35 uses Op90bb ---------- -Op90bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90bc] sub.l #$33333333, d0 uses Op90bc ---------- -Op90bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90c0] suba.w d0, a0 uses Op90c0 ---------- -Op90c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90d0] suba.w (a0), a0 uses Op90d0 ---------- -Op90d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90d8] suba.w (a0)+, a0 uses Op90d8 ---------- -Op90d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90e0] suba.w -(a0), a0 uses Op90e0 ---------- -Op90e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90e8] suba.w ($3333,a0), a0 uses Op90e8 ---------- -Op90e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90f0] suba.w ($33,a0,d3.w*2), a0 uses Op90f0 ---------- -Op90f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90f8] suba.w $3333.w, a0 uses Op90f8 ---------- -Op90f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90f9] suba.w $33333333.l, a0 uses Op90f9 ---------- -Op90f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90fa] suba.w ($3333,pc), a0; =3335 uses Op90fa ---------- -Op90fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90fb] suba.w ($33,pc,d3.w*2), a0; =35 uses Op90fb ---------- -Op90fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90fc] suba.w #$3333, a0 uses Op90fc ---------- -Op90fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9100] subx.b d0, d0 uses Op9100 ---------- -Op9100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - mov r6,r6,asl #24 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9108] subx.b -(a0), -(a0) uses Op9108 ---------- -Op9108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [910f] subx.b -(a7), -(a0) uses Op910f ---------- -Op910f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9110] sub.b d0, (a0) uses Op9110 ---------- -Op9110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9118] sub.b d0, (a0)+ uses Op9118 ---------- -Op9118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [911f] sub.b d0, (a7)+ uses Op911f ---------- -Op911f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9120] sub.b d0, -(a0) uses Op9120 ---------- -Op9120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9127] sub.b d0, -(a7) uses Op9127 ---------- -Op9127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9128] sub.b d0, ($3333,a0) uses Op9128 ---------- -Op9128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9130] sub.b d0, ($33,a0,d3.w*2) uses Op9130 ---------- -Op9130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9138] sub.b d0, $3333.w uses Op9138 ---------- -Op9138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9139] sub.b d0, $33333333.l uses Op9139 ---------- -Op9139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9140] subx.w d0, d0 uses Op9140 ---------- -Op9140: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r6,r6,asl #16 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9148] subx.w -(a0), -(a0) uses Op9148 ---------- -Op9148: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r6,r0,asl #16 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9150] sub.w d0, (a0) uses Op9150 ---------- -Op9150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9158] sub.w d0, (a0)+ uses Op9158 ---------- -Op9158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9160] sub.w d0, -(a0) uses Op9160 ---------- -Op9160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9168] sub.w d0, ($3333,a0) uses Op9168 ---------- -Op9168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9170] sub.w d0, ($33,a0,d3.w*2) uses Op9170 ---------- -Op9170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9178] sub.w d0, $3333.w uses Op9178 ---------- -Op9178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9179] sub.w d0, $33333333.l uses Op9179 ---------- -Op9179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9180] subx.l d0, d0 uses Op9180 ---------- -Op9180: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9188] subx.l -(a0), -(a0) uses Op9188 ---------- -Op9188: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9190] sub.l d0, (a0) uses Op9190 ---------- -Op9190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9198] sub.l d0, (a0)+ uses Op9198 ---------- -Op9198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91a0] sub.l d0, -(a0) uses Op91a0 ---------- -Op91a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91a8] sub.l d0, ($3333,a0) uses Op91a8 ---------- -Op91a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91b0] sub.l d0, ($33,a0,d3.w*2) uses Op91b0 ---------- -Op91b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91b8] sub.l d0, $3333.w uses Op91b8 ---------- -Op91b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91b9] sub.l d0, $33333333.l uses Op91b9 ---------- -Op91b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91c0] suba.l d0, a0 uses Op91c0 ---------- -Op91c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91d0] suba.l (a0), a0 uses Op91d0 ---------- -Op91d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91d8] suba.l (a0)+, a0 uses Op91d8 ---------- -Op91d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91e0] suba.l -(a0), a0 uses Op91e0 ---------- -Op91e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91e8] suba.l ($3333,a0), a0 uses Op91e8 ---------- -Op91e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91f0] suba.l ($33,a0,d3.w*2), a0 uses Op91f0 ---------- -Op91f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91f8] suba.l $3333.w, a0 uses Op91f8 ---------- -Op91f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91f9] suba.l $33333333.l, a0 uses Op91f9 ---------- -Op91f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91fa] suba.l ($3333,pc), a0; =3335 uses Op91fa ---------- -Op91fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91fb] suba.l ($33,pc,d3.w*2), a0; =35 uses Op91fb ---------- -Op91fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91fc] suba.l #$33333333, a0 uses Op91fc ---------- -Op91fc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9f08] subx.b -(a0), -(a7) uses Op9f08 ---------- -Op9f08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9f0f] subx.b -(a7), -(a7) uses Op9f0f ---------- -Op9f0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b000] cmp.b d0, d0 uses Opb000 ---------- -Opb000: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b010] cmp.b (a0), d0 uses Opb010 ---------- -Opb010: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b018] cmp.b (a0)+, d0 uses Opb018 ---------- -Opb018: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b01f] cmp.b (a7)+, d0 uses Opb01f ---------- -Opb01f: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b020] cmp.b -(a0), d0 uses Opb020 ---------- -Opb020: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b027] cmp.b -(a7), d0 uses Opb027 ---------- -Opb027: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b028] cmp.b ($3333,a0), d0 uses Opb028 ---------- -Opb028: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b030] cmp.b ($33,a0,d3.w*2), d0 uses Opb030 ---------- -Opb030: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b039] cmp.b $33333333.l, d0 uses Opb039 ---------- -Opb039: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b03a] cmp.b ($3333,pc), d0; =3335 uses Opb03a ---------- -Opb03a: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b03b] cmp.b ($33,pc,d3.w*2), d0; =35 uses Opb03b ---------- -Opb03b: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b03c] cmp.b #$33, d0 uses Opb03c ---------- -Opb03c: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b040] cmp.w d0, d0 uses Opb040 ---------- -Opb040: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b050] cmp.w (a0), d0 uses Opb050 ---------- -Opb050: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b058] cmp.w (a0)+, d0 uses Opb058 ---------- -Opb058: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b060] cmp.w -(a0), d0 uses Opb060 ---------- -Opb060: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b068] cmp.w ($3333,a0), d0 uses Opb068 ---------- -Opb068: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b070] cmp.w ($33,a0,d3.w*2), d0 uses Opb070 ---------- -Opb070: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b078] cmp.w $3333.w, d0 uses Opb078 ---------- -Opb078: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b079] cmp.w $33333333.l, d0 uses Opb079 ---------- -Opb079: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b07a] cmp.w ($3333,pc), d0; =3335 uses Opb07a ---------- -Opb07a: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b07b] cmp.w ($33,pc,d3.w*2), d0; =35 uses Opb07b ---------- -Opb07b: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b07c] cmp.w #$3333, d0 uses Opb07c ---------- -Opb07c: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b080] cmp.l d0, d0 uses Opb080 ---------- -Opb080: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b090] cmp.l (a0), d0 uses Opb090 ---------- -Opb090: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b098] cmp.l (a0)+, d0 uses Opb098 ---------- -Opb098: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0a0] cmp.l -(a0), d0 uses Opb0a0 ---------- -Opb0a0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0a8] cmp.l ($3333,a0), d0 uses Opb0a8 ---------- -Opb0a8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0b0] cmp.l ($33,a0,d3.w*2), d0 uses Opb0b0 ---------- -Opb0b0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0b9] cmp.l $33333333.l, d0 uses Opb0b9 ---------- -Opb0b9: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0ba] cmp.l ($3333,pc), d0; =3335 uses Opb0ba ---------- -Opb0ba: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0bb] cmp.l ($33,pc,d3.w*2), d0; =35 uses Opb0bb ---------- -Opb0bb: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0bc] cmp.l #$33333333, d0 uses Opb0bc ---------- -Opb0bc: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0c0] cmpa.w d0, a0 uses Opb0c0 ---------- -Opb0c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0d0] cmpa.w (a0), a0 uses Opb0d0 ---------- -Opb0d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0d8] cmpa.w (a0)+, a0 uses Opb0d8 ---------- -Opb0d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0e0] cmpa.w -(a0), a0 uses Opb0e0 ---------- -Opb0e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0e8] cmpa.w ($3333,a0), a0 uses Opb0e8 ---------- -Opb0e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0f0] cmpa.w ($33,a0,d3.w*2), a0 uses Opb0f0 ---------- -Opb0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0f8] cmpa.w $3333.w, a0 uses Opb0f8 ---------- -Opb0f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0f9] cmpa.w $33333333.l, a0 uses Opb0f9 ---------- -Opb0f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0fa] cmpa.w ($3333,pc), a0; =3335 uses Opb0fa ---------- -Opb0fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0fb] cmpa.w ($33,pc,d3.w*2), a0; =35 uses Opb0fb ---------- -Opb0fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0fc] cmpa.w #$3333, a0 uses Opb0fc ---------- -Opb0fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b100] eor.b d0, d0 uses Opb100 ---------- -Opb100: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b108] cmpm.b (a0)+, (a0)+ uses Opb108 ---------- -Opb108: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b10f] cmpm.b (a7)+, (a0)+ uses Opb10f ---------- -Opb10f: -;@ Get src operand into r11: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b110] eor.b d0, (a0) uses Opb110 ---------- -Opb110: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b118] eor.b d0, (a0)+ uses Opb118 ---------- -Opb118: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b11f] eor.b d0, (a7)+ uses Opb11f ---------- -Opb11f: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b120] eor.b d0, -(a0) uses Opb120 ---------- -Opb120: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b127] eor.b d0, -(a7) uses Opb127 ---------- -Opb127: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b128] eor.b d0, ($3333,a0) uses Opb128 ---------- -Opb128: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b130] eor.b d0, ($33,a0,d3.w*2) uses Opb130 ---------- -Opb130: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b138] eor.b d0, $3333.w uses Opb138 ---------- -Opb138: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b139] eor.b d0, $33333333.l uses Opb139 ---------- -Opb139: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b140] eor.w d0, d0 uses Opb140 ---------- -Opb140: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b148] cmpm.w (a0)+, (a0)+ uses Opb148 ---------- -Opb148: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r11,r0,asl #16 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - rsbs r0,r11,r0,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b150] eor.w d0, (a0) uses Opb150 ---------- -Opb150: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b158] eor.w d0, (a0)+ uses Opb158 ---------- -Opb158: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b160] eor.w d0, -(a0) uses Opb160 ---------- -Opb160: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b168] eor.w d0, ($3333,a0) uses Opb168 ---------- -Opb168: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b170] eor.w d0, ($33,a0,d3.w*2) uses Opb170 ---------- -Opb170: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b178] eor.w d0, $3333.w uses Opb178 ---------- -Opb178: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b179] eor.w d0, $33333333.l uses Opb179 ---------- -Opb179: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b180] eor.l d0, d0 uses Opb180 ---------- -Opb180: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b188] cmpm.l (a0)+, (a0)+ uses Opb188 ---------- -Opb188: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r11,r0 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - rsbs r0,r11,r0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b190] eor.l d0, (a0) uses Opb190 ---------- -Opb190: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b198] eor.l d0, (a0)+ uses Opb198 ---------- -Opb198: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1a0] eor.l d0, -(a0) uses Opb1a0 ---------- -Opb1a0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1a8] eor.l d0, ($3333,a0) uses Opb1a8 ---------- -Opb1a8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1b0] eor.l d0, ($33,a0,d3.w*2) uses Opb1b0 ---------- -Opb1b0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1b8] eor.l d0, $3333.w uses Opb1b8 ---------- -Opb1b8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1b9] eor.l d0, $33333333.l uses Opb1b9 ---------- -Opb1b9: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1c0] cmpa.l d0, a0 uses Opb1c0 ---------- -Opb1c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1d0] cmpa.l (a0), a0 uses Opb1d0 ---------- -Opb1d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1d8] cmpa.l (a0)+, a0 uses Opb1d8 ---------- -Opb1d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1e0] cmpa.l -(a0), a0 uses Opb1e0 ---------- -Opb1e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1e8] cmpa.l ($3333,a0), a0 uses Opb1e8 ---------- -Opb1e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1f0] cmpa.l ($33,a0,d3.w*2), a0 uses Opb1f0 ---------- -Opb1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1f8] cmpa.l $3333.w, a0 uses Opb1f8 ---------- -Opb1f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1f9] cmpa.l $33333333.l, a0 uses Opb1f9 ---------- -Opb1f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1fa] cmpa.l ($3333,pc), a0; =3335 uses Opb1fa ---------- -Opb1fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1fb] cmpa.l ($33,pc,d3.w*2), a0; =35 uses Opb1fb ---------- -Opb1fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1fc] cmpa.l #$33333333, a0 uses Opb1fc ---------- -Opb1fc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [bf08] cmpm.b (a0)+, (a7)+ uses Opbf08 ---------- -Opbf08: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [bf0f] cmpm.b (a7)+, (a7)+ uses Opbf0f ---------- -Opbf0f: -;@ Get src operand into r11: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c000] and.b d0, d0 uses Opc000 ---------- -Opc000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c010] and.b (a0), d0 uses Opc010 ---------- -Opc010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c018] and.b (a0)+, d0 uses Opc018 ---------- -Opc018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c01f] and.b (a7)+, d0 uses Opc01f ---------- -Opc01f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c020] and.b -(a0), d0 uses Opc020 ---------- -Opc020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c027] and.b -(a7), d0 uses Opc027 ---------- -Opc027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c028] and.b ($3333,a0), d0 uses Opc028 ---------- -Opc028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c030] and.b ($33,a0,d3.w*2), d0 uses Opc030 ---------- -Opc030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c038] and.b $3333.w, d0 uses Opc038 ---------- -Opc038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c039] and.b $33333333.l, d0 uses Opc039 ---------- -Opc039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c03a] and.b ($3333,pc), d0; =3335 uses Opc03a ---------- -Opc03a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c03b] and.b ($33,pc,d3.w*2), d0; =35 uses Opc03b ---------- -Opc03b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c03c] and.b #$33, d0 uses Opc03c ---------- -Opc03c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c050] and.w (a0), d0 uses Opc050 ---------- -Opc050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c058] and.w (a0)+, d0 uses Opc058 ---------- -Opc058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c060] and.w -(a0), d0 uses Opc060 ---------- -Opc060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c068] and.w ($3333,a0), d0 uses Opc068 ---------- -Opc068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c070] and.w ($33,a0,d3.w*2), d0 uses Opc070 ---------- -Opc070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c078] and.w $3333.w, d0 uses Opc078 ---------- -Opc078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c079] and.w $33333333.l, d0 uses Opc079 ---------- -Opc079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c07a] and.w ($3333,pc), d0; =3335 uses Opc07a ---------- -Opc07a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c07b] and.w ($33,pc,d3.w*2), d0; =35 uses Opc07b ---------- -Opc07b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c07c] and.w #$3333, d0 uses Opc07c ---------- -Opc07c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c080] and.l d0, d0 uses Opc080 ---------- -Opc080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c090] and.l (a0), d0 uses Opc090 ---------- -Opc090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c098] and.l (a0)+, d0 uses Opc098 ---------- -Opc098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0a0] and.l -(a0), d0 uses Opc0a0 ---------- -Opc0a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0a8] and.l ($3333,a0), d0 uses Opc0a8 ---------- -Opc0a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0b0] and.l ($33,a0,d3.w*2), d0 uses Opc0b0 ---------- -Opc0b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0b8] and.l $3333.w, d0 uses Opc0b8 ---------- -Opc0b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0b9] and.l $33333333.l, d0 uses Opc0b9 ---------- -Opc0b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0ba] and.l ($3333,pc), d0; =3335 uses Opc0ba ---------- -Opc0ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0bb] and.l ($33,pc,d3.w*2), d0; =35 uses Opc0bb ---------- -Opc0bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0bc] and.l #$33333333, d0 uses Opc0bc ---------- -Opc0bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0c0] mulu.w d0, d0 uses Opc0c0 ---------- -Opc0c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0d0] mulu.w (a0), d0 uses Opc0d0 ---------- -Opc0d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0d8] mulu.w (a0)+, d0 uses Opc0d8 ---------- -Opc0d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0e0] mulu.w -(a0), d0 uses Opc0e0 ---------- -Opc0e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0e8] mulu.w ($3333,a0), d0 uses Opc0e8 ---------- -Opc0e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0f0] mulu.w ($33,a0,d3.w*2), d0 uses Opc0f0 ---------- -Opc0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0f8] mulu.w $3333.w, d0 uses Opc0f8 ---------- -Opc0f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0f9] mulu.w $33333333.l, d0 uses Opc0f9 ---------- -Opc0f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#66 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0fa] mulu.w ($3333,pc), d0; =3335 uses Opc0fa ---------- -Opc0fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0fb] mulu.w ($33,pc,d3.w*2), d0; =35 uses Opc0fb ---------- -Opc0fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0fc] mulu.w #$3333, d0 uses Opc0fc ---------- -Opc0fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c100] abcd d0, d0 uses Opc100 ---------- -Opc100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c108] abcd -(a0), -(a0) uses Opc108 ---------- -Opc108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c10f] abcd -(a7), -(a0) uses Opc10f ---------- -Opc10f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c110] and.b d0, (a0) uses Opc110 ---------- -Opc110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c118] and.b d0, (a0)+ uses Opc118 ---------- -Opc118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c11f] and.b d0, (a7)+ uses Opc11f ---------- -Opc11f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c120] and.b d0, -(a0) uses Opc120 ---------- -Opc120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c127] and.b d0, -(a7) uses Opc127 ---------- -Opc127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c128] and.b d0, ($3333,a0) uses Opc128 ---------- -Opc128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c130] and.b d0, ($33,a0,d3.w*2) uses Opc130 ---------- -Opc130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c138] and.b d0, $3333.w uses Opc138 ---------- -Opc138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c139] and.b d0, $33333333.l uses Opc139 ---------- -Opc139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c140] exg d0, d0 uses Opc140 ---------- -Opc140: - and r2,r8,#0x0e00 ;@ Find T register - and r3,r8,#0x000f ;@ Find S register - - ldr r0,[r7,r2,lsr #7] ;@ Get T - ldr r1,[r7,r3,lsl #2] ;@ Get S - - str r0,[r7,r3,lsl #2] ;@ T->S - str r1,[r7,r2,lsr #7] ;@ S->T - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c148] exg a0, a0 uses Opc148 ---------- -Opc148: - and r2,r8,#0x0e00 ;@ Find T register - and r3,r8,#0x000f ;@ Find S register - orr r2,r2,#0x1000 ;@ T is an address register - - ldr r0,[r7,r2,lsr #7] ;@ Get T - ldr r1,[r7,r3,lsl #2] ;@ Get S - - str r0,[r7,r3,lsl #2] ;@ T->S - str r1,[r7,r2,lsr #7] ;@ S->T - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c150] and.w d0, (a0) uses Opc150 ---------- -Opc150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c158] and.w d0, (a0)+ uses Opc158 ---------- -Opc158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c160] and.w d0, -(a0) uses Opc160 ---------- -Opc160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c168] and.w d0, ($3333,a0) uses Opc168 ---------- -Opc168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c170] and.w d0, ($33,a0,d3.w*2) uses Opc170 ---------- -Opc170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c178] and.w d0, $3333.w uses Opc178 ---------- -Opc178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c179] and.w d0, $33333333.l uses Opc179 ---------- -Opc179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c188] exg a0, d0 uses Opc188 ---------- -Opc188: - and r2,r8,#0x0e00 ;@ Find T register - and r3,r8,#0x000f ;@ Find S register - - ldr r0,[r7,r2,lsr #7] ;@ Get T - ldr r1,[r7,r3,lsl #2] ;@ Get S - - str r0,[r7,r3,lsl #2] ;@ T->S - str r1,[r7,r2,lsr #7] ;@ S->T - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c190] and.l d0, (a0) uses Opc190 ---------- -Opc190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c198] and.l d0, (a0)+ uses Opc198 ---------- -Opc198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1a0] and.l d0, -(a0) uses Opc1a0 ---------- -Opc1a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1a8] and.l d0, ($3333,a0) uses Opc1a8 ---------- -Opc1a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1b0] and.l d0, ($33,a0,d3.w*2) uses Opc1b0 ---------- -Opc1b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1b8] and.l d0, $3333.w uses Opc1b8 ---------- -Opc1b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1b9] and.l d0, $33333333.l uses Opc1b9 ---------- -Opc1b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1c0] muls.w d0, d0 uses Opc1c0 ---------- -Opc1c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1d0] muls.w (a0), d0 uses Opc1d0 ---------- -Opc1d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1d8] muls.w (a0)+, d0 uses Opc1d8 ---------- -Opc1d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1e0] muls.w -(a0), d0 uses Opc1e0 ---------- -Opc1e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1e8] muls.w ($3333,a0), d0 uses Opc1e8 ---------- -Opc1e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1f0] muls.w ($33,a0,d3.w*2), d0 uses Opc1f0 ---------- -Opc1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1f8] muls.w $3333.w, d0 uses Opc1f8 ---------- -Opc1f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1f9] muls.w $33333333.l, d0 uses Opc1f9 ---------- -Opc1f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#66 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1fa] muls.w ($3333,pc), d0; =3335 uses Opc1fa ---------- -Opc1fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1fb] muls.w ($33,pc,d3.w*2), d0; =35 uses Opc1fb ---------- -Opc1fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1fc] muls.w #$3333, d0 uses Opc1fc ---------- -Opc1fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [cf08] abcd -(a0), -(a7) uses Opcf08 ---------- -Opcf08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [cf0f] abcd -(a7), -(a7) uses Opcf0f ---------- -Opcf0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d000] add.b d0, d0 uses Opd000 ---------- -Opd000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d010] add.b (a0), d0 uses Opd010 ---------- -Opd010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d018] add.b (a0)+, d0 uses Opd018 ---------- -Opd018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d01f] add.b (a7)+, d0 uses Opd01f ---------- -Opd01f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d020] add.b -(a0), d0 uses Opd020 ---------- -Opd020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d027] add.b -(a7), d0 uses Opd027 ---------- -Opd027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d028] add.b ($3333,a0), d0 uses Opd028 ---------- -Opd028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d030] add.b ($33,a0,d3.w*2), d0 uses Opd030 ---------- -Opd030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d038] add.b $3333.w, d0 uses Opd038 ---------- -Opd038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d039] add.b $33333333.l, d0 uses Opd039 ---------- -Opd039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d03a] add.b ($3333,pc), d0; =3335 uses Opd03a ---------- -Opd03a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d03b] add.b ($33,pc,d3.w*2), d0; =35 uses Opd03b ---------- -Opd03b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d03c] add.b #$33, d0 uses Opd03c ---------- -Opd03c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d050] add.w (a0), d0 uses Opd050 ---------- -Opd050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d058] add.w (a0)+, d0 uses Opd058 ---------- -Opd058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d060] add.w -(a0), d0 uses Opd060 ---------- -Opd060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d068] add.w ($3333,a0), d0 uses Opd068 ---------- -Opd068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d070] add.w ($33,a0,d3.w*2), d0 uses Opd070 ---------- -Opd070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d078] add.w $3333.w, d0 uses Opd078 ---------- -Opd078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d079] add.w $33333333.l, d0 uses Opd079 ---------- -Opd079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d07a] add.w ($3333,pc), d0; =3335 uses Opd07a ---------- -Opd07a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d07b] add.w ($33,pc,d3.w*2), d0; =35 uses Opd07b ---------- -Opd07b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d07c] add.w #$3333, d0 uses Opd07c ---------- -Opd07c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d080] add.l d0, d0 uses Opd080 ---------- -Opd080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d090] add.l (a0), d0 uses Opd090 ---------- -Opd090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d098] add.l (a0)+, d0 uses Opd098 ---------- -Opd098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0a0] add.l -(a0), d0 uses Opd0a0 ---------- -Opd0a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0a8] add.l ($3333,a0), d0 uses Opd0a8 ---------- -Opd0a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0b0] add.l ($33,a0,d3.w*2), d0 uses Opd0b0 ---------- -Opd0b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0b8] add.l $3333.w, d0 uses Opd0b8 ---------- -Opd0b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0b9] add.l $33333333.l, d0 uses Opd0b9 ---------- -Opd0b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0ba] add.l ($3333,pc), d0; =3335 uses Opd0ba ---------- -Opd0ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0bb] add.l ($33,pc,d3.w*2), d0; =35 uses Opd0bb ---------- -Opd0bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0bc] add.l #$33333333, d0 uses Opd0bc ---------- -Opd0bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0c0] adda.w d0, a0 uses Opd0c0 ---------- -Opd0c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0d0] adda.w (a0), a0 uses Opd0d0 ---------- -Opd0d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0d8] adda.w (a0)+, a0 uses Opd0d8 ---------- -Opd0d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0e0] adda.w -(a0), a0 uses Opd0e0 ---------- -Opd0e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0e8] adda.w ($3333,a0), a0 uses Opd0e8 ---------- -Opd0e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0f0] adda.w ($33,a0,d3.w*2), a0 uses Opd0f0 ---------- -Opd0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0f8] adda.w $3333.w, a0 uses Opd0f8 ---------- -Opd0f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0f9] adda.w $33333333.l, a0 uses Opd0f9 ---------- -Opd0f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0fa] adda.w ($3333,pc), a0; =3335 uses Opd0fa ---------- -Opd0fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0fb] adda.w ($33,pc,d3.w*2), a0; =35 uses Opd0fb ---------- -Opd0fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0fc] adda.w #$3333, a0 uses Opd0fc ---------- -Opd0fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d100] addx.b d0, d0 uses Opd100 ---------- -Opd100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - mov r6,r6,asl #24 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d108] addx.b -(a0), -(a0) uses Opd108 ---------- -Opd108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d10f] addx.b -(a7), -(a0) uses Opd10f ---------- -Opd10f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d110] add.b d0, (a0) uses Opd110 ---------- -Opd110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d118] add.b d0, (a0)+ uses Opd118 ---------- -Opd118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d11f] add.b d0, (a7)+ uses Opd11f ---------- -Opd11f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d120] add.b d0, -(a0) uses Opd120 ---------- -Opd120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d127] add.b d0, -(a7) uses Opd127 ---------- -Opd127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d128] add.b d0, ($3333,a0) uses Opd128 ---------- -Opd128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d130] add.b d0, ($33,a0,d3.w*2) uses Opd130 ---------- -Opd130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d138] add.b d0, $3333.w uses Opd138 ---------- -Opd138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d139] add.b d0, $33333333.l uses Opd139 ---------- -Opd139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d140] addx.w d0, d0 uses Opd140 ---------- -Opd140: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r6,r6,asl #16 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #16 - - adcs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d148] addx.w -(a0), -(a0) uses Opd148 ---------- -Opd148: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r6,r0,asl #16 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #16 - - adcs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d150] add.w d0, (a0) uses Opd150 ---------- -Opd150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d158] add.w d0, (a0)+ uses Opd158 ---------- -Opd158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d160] add.w d0, -(a0) uses Opd160 ---------- -Opd160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d168] add.w d0, ($3333,a0) uses Opd168 ---------- -Opd168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d170] add.w d0, ($33,a0,d3.w*2) uses Opd170 ---------- -Opd170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d178] add.w d0, $3333.w uses Opd178 ---------- -Opd178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d179] add.w d0, $33333333.l uses Opd179 ---------- -Opd179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d180] addx.l d0, d0 uses Opd180 ---------- -Opd180: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - adcs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d188] addx.l -(a0), -(a0) uses Opd188 ---------- -Opd188: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - adcs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d190] add.l d0, (a0) uses Opd190 ---------- -Opd190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d198] add.l d0, (a0)+ uses Opd198 ---------- -Opd198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1a0] add.l d0, -(a0) uses Opd1a0 ---------- -Opd1a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1a8] add.l d0, ($3333,a0) uses Opd1a8 ---------- -Opd1a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1b0] add.l d0, ($33,a0,d3.w*2) uses Opd1b0 ---------- -Opd1b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1b8] add.l d0, $3333.w uses Opd1b8 ---------- -Opd1b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1b9] add.l d0, $33333333.l uses Opd1b9 ---------- -Opd1b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1c0] adda.l d0, a0 uses Opd1c0 ---------- -Opd1c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1d0] adda.l (a0), a0 uses Opd1d0 ---------- -Opd1d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1d8] adda.l (a0)+, a0 uses Opd1d8 ---------- -Opd1d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1e0] adda.l -(a0), a0 uses Opd1e0 ---------- -Opd1e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1e8] adda.l ($3333,a0), a0 uses Opd1e8 ---------- -Opd1e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1f0] adda.l ($33,a0,d3.w*2), a0 uses Opd1f0 ---------- -Opd1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1f8] adda.l $3333.w, a0 uses Opd1f8 ---------- -Opd1f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1f9] adda.l $33333333.l, a0 uses Opd1f9 ---------- -Opd1f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1fa] adda.l ($3333,pc), a0; =3335 uses Opd1fa ---------- -Opd1fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1fb] adda.l ($33,pc,d3.w*2), a0; =35 uses Opd1fb ---------- -Opd1fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1fc] adda.l #$33333333, a0 uses Opd1fc ---------- -Opd1fc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [df08] addx.b -(a0), -(a7) uses Opdf08 ---------- -Opdf08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [df0f] addx.b -(a7), -(a7) uses Opdf0f ---------- -Opdf0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e000] asr.b #8, d0 uses Ope000 ---------- -Ope000: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #24 - -;@ Shift register: - movs r0,r0,asr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e008] lsr.b #8, d0 uses Ope008 ---------- -Ope008: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #24 - -;@ Shift register: - movs r0,r0,lsr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e010] roxr.b #8, d0 uses Ope010 ---------- -Ope010: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,#8 - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e018] ror.b #8, d0 uses Ope018 ---------- -Ope018: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #8 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e020] asr.b d0, d0 uses Ope020 ---------- -Ope020: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #24 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e028] lsr.b d0, d0 uses Ope028 ---------- -Ope028: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #24 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e030] roxr.b d0, d0 uses Ope030 ---------- -Ope030: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e030: - subs r2,r2,#9 - bpl Reduce_e030 - adds r2,r2,#9 ;@ Now r2=0-8 - beq norotx_e030 - - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe030 -norotx_e030: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe030: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e038] ror.b d0, d0 uses Ope038 ---------- -Ope038: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e040] asr.w #8, d0 uses Ope040 ---------- -Ope040: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e048] lsr.w #8, d0 uses Ope048 ---------- -Ope048: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e050] roxr.w #8, d0 uses Ope050 ---------- -Ope050: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,#8 - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e058] ror.w #8, d0 uses Ope058 ---------- -Ope058: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #8 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e060] asr.w d0, d0 uses Ope060 ---------- -Ope060: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e068] lsr.w d0, d0 uses Ope068 ---------- -Ope068: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e070] roxr.w d0, d0 uses Ope070 ---------- -Ope070: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e070: - subs r2,r2,#17 - bpl Reduce_e070 - adds r2,r2,#17 ;@ Now r2=0-16 - beq norotx_e070 - - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe070 -norotx_e070: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe070: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e078] ror.w d0, d0 uses Ope078 ---------- -Ope078: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e080] asr.l #8, d0 uses Ope080 ---------- -Ope080: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Shift register: - movs r0,r0,asr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e088] lsr.l #8, d0 uses Ope088 ---------- -Ope088: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Shift register: - movs r0,r0,lsr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e090] roxr.l #8, d0 uses Ope090 ---------- -Ope090: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,#8 - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e098] ror.l #8, d0 uses Ope098 ---------- -Ope098: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #8 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0a0] asr.l d0, d0 uses Ope0a0 ---------- -Ope0a0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0a8] lsr.l d0, d0 uses Ope0a8 ---------- -Ope0a8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0b0] roxr.l d0, d0 uses Ope0b0 ---------- -Ope0b0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - subs r2,r2,#33 - addsmi r2,r2,#33 ;@ Now r2=0-32 - beq norotx_e0b0 - - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe0b0 -norotx_e0b0: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe0b0: - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0b8] ror.l d0, d0 uses Ope0b8 ---------- -Ope0b8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0d0] asr.w (a0) uses Ope0d0 ---------- -Ope0d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0d8] asr.w (a0)+ uses Ope0d8 ---------- -Ope0d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0e0] asr.w -(a0) uses Ope0e0 ---------- -Ope0e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0e8] asr.w ($3333,a0) uses Ope0e8 ---------- -Ope0e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0f0] asr.w ($33,a0,d3.w*2) uses Ope0f0 ---------- -Ope0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0f8] asr.w $3333.w uses Ope0f8 ---------- -Ope0f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0f9] asr.w $33333333.l uses Ope0f9 ---------- -Ope0f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e100] asl.b #8, d0 uses Ope100 ---------- -Ope100: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #8 - cmpne r3,r1,asr #8 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e108] lsl.b #8, d0 uses Ope108 ---------- -Ope108: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Shift register: - movs r0,r0,lsl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e110] roxl.b #8, d0 uses Ope110 ---------- -Ope110: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,#1 ;@ Reversed - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e118] rol.b #8, d0 uses Ope118 ---------- -Ope118: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #24 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e120] asl.b d0, d0 uses Ope120 ---------- -Ope120: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e128] lsl.b d0, d0 uses Ope128 ---------- -Ope128: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e130] roxl.b d0, d0 uses Ope130 ---------- -Ope130: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e130: - subs r2,r2,#9 - bpl Reduce_e130 - adds r2,r2,#9 ;@ Now r2=0-8 - beq norotx_e130 - - rsb r2,r2,#9 ;@ Reverse direction - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe130 -norotx_e130: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe130: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e138] rol.b d0, d0 uses Ope138 ---------- -Ope138: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - cmp r2,#32 ;@ rotating by 0? - tstne r0,#1 ;@ no, check bit 0 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e140] asl.w #8, d0 uses Ope140 ---------- -Ope140: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #8 - cmpne r3,r1,asr #8 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e148] lsl.w #8, d0 uses Ope148 ---------- -Ope148: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e150] roxl.w #8, d0 uses Ope150 ---------- -Ope150: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,#9 ;@ Reversed - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e158] rol.w #8, d0 uses Ope158 ---------- -Ope158: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #24 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e160] asl.w d0, d0 uses Ope160 ---------- -Ope160: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e168] lsl.w d0, d0 uses Ope168 ---------- -Ope168: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e170] roxl.w d0, d0 uses Ope170 ---------- -Ope170: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e170: - subs r2,r2,#17 - bpl Reduce_e170 - adds r2,r2,#17 ;@ Now r2=0-16 - beq norotx_e170 - - rsb r2,r2,#17 ;@ Reverse direction - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe170 -norotx_e170: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe170: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e178] rol.w d0, d0 uses Ope178 ---------- -Ope178: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - cmp r2,#32 ;@ rotating by 0? - tstne r0,#1 ;@ no, check bit 0 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e180] asl.l #8, d0 uses Ope180 ---------- -Ope180: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #8 - cmpne r3,r1,asr #8 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e188] lsl.l #8, d0 uses Ope188 ---------- -Ope188: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Shift register: - movs r0,r0,lsl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e190] roxl.l #8, d0 uses Ope190 ---------- -Ope190: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,#25 ;@ Reversed - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e198] rol.l #8, d0 uses Ope198 ---------- -Ope198: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Rotate register: - movs r0,r0,ror #24 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1a0] asl.l d0, d0 uses Ope1a0 ---------- -Ope1a0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1a8] lsl.l d0, d0 uses Ope1a8 ---------- -Ope1a8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1b0] roxl.l d0, d0 uses Ope1b0 ---------- -Ope1b0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - subs r2,r2,#33 - addsmi r2,r2,#33 ;@ Now r2=0-32 - beq norotx_e1b0 - - rsb r2,r2,#33 ;@ Reverse direction - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe1b0 -norotx_e1b0: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe1b0: - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1b8] rol.l d0, d0 uses Ope1b8 ---------- -Ope1b8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - cmp r2,#32 ;@ rotating by 0? - tstne r0,#1 ;@ no, check bit 0 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1d0] asl.w (a0) uses Ope1d0 ---------- -Ope1d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1d8] asl.w (a0)+ uses Ope1d8 ---------- -Ope1d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1e0] asl.w -(a0) uses Ope1e0 ---------- -Ope1e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1e8] asl.w ($3333,a0) uses Ope1e8 ---------- -Ope1e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1f0] asl.w ($33,a0,d3.w*2) uses Ope1f0 ---------- -Ope1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1f8] asl.w $3333.w uses Ope1f8 ---------- -Ope1f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1f9] asl.w $33333333.l uses Ope1f9 ---------- -Ope1f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e210] roxr.b #1, d0 uses Ope210 ---------- -Ope210: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - orr r0,r0,r0,lsr #24 - bic r0,r0,#0x1000000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e250] roxr.w #1, d0 uses Ope250 ---------- -Ope250: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e290] roxr.l #1, d0 uses Ope290 ---------- -Ope290: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2d0] lsr.w (a0) uses Ope2d0 ---------- -Ope2d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2d8] lsr.w (a0)+ uses Ope2d8 ---------- -Ope2d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2e0] lsr.w -(a0) uses Ope2e0 ---------- -Ope2e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2e8] lsr.w ($3333,a0) uses Ope2e8 ---------- -Ope2e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2f0] lsr.w ($33,a0,d3.w*2) uses Ope2f0 ---------- -Ope2f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2f8] lsr.w $3333.w uses Ope2f8 ---------- -Ope2f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2f9] lsr.w $33333333.l uses Ope2f9 ---------- -Ope2f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e310] roxl.b #1, d0 uses Ope310 ---------- -Ope310: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x1000000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e350] roxl.w #1, d0 uses Ope350 ---------- -Ope350: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e390] roxl.l #1, d0 uses Ope390 ---------- -Ope390: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x1 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3d0] lsl.w (a0) uses Ope3d0 ---------- -Ope3d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3d8] lsl.w (a0)+ uses Ope3d8 ---------- -Ope3d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3e0] lsl.w -(a0) uses Ope3e0 ---------- -Ope3e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3e8] lsl.w ($3333,a0) uses Ope3e8 ---------- -Ope3e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3f0] lsl.w ($33,a0,d3.w*2) uses Ope3f0 ---------- -Ope3f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3f8] lsl.w $3333.w uses Ope3f8 ---------- -Ope3f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3f9] lsl.w $33333333.l uses Ope3f9 ---------- -Ope3f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4d0] roxr.w (a0) uses Ope4d0 ---------- -Ope4d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4d8] roxr.w (a0)+ uses Ope4d8 ---------- -Ope4d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4e0] roxr.w -(a0) uses Ope4e0 ---------- -Ope4e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4e8] roxr.w ($3333,a0) uses Ope4e8 ---------- -Ope4e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4f0] roxr.w ($33,a0,d3.w*2) uses Ope4f0 ---------- -Ope4f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4f8] roxr.w $3333.w uses Ope4f8 ---------- -Ope4f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4f9] roxr.w $33333333.l uses Ope4f9 ---------- -Ope4f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5d0] roxl.w (a0) uses Ope5d0 ---------- -Ope5d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5d8] roxl.w (a0)+ uses Ope5d8 ---------- -Ope5d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5e0] roxl.w -(a0) uses Ope5e0 ---------- -Ope5e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5e8] roxl.w ($3333,a0) uses Ope5e8 ---------- -Ope5e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5f0] roxl.w ($33,a0,d3.w*2) uses Ope5f0 ---------- -Ope5f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5f8] roxl.w $3333.w uses Ope5f8 ---------- -Ope5f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5f9] roxl.w $33333333.l uses Ope5f9 ---------- -Ope5f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6d0] ror.w (a0) uses Ope6d0 ---------- -Ope6d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6d8] ror.w (a0)+ uses Ope6d8 ---------- -Ope6d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6e0] ror.w -(a0) uses Ope6e0 ---------- -Ope6e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6e8] ror.w ($3333,a0) uses Ope6e8 ---------- -Ope6e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6f0] ror.w ($33,a0,d3.w*2) uses Ope6f0 ---------- -Ope6f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6f8] ror.w $3333.w uses Ope6f8 ---------- -Ope6f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6f9] ror.w $33333333.l uses Ope6f9 ---------- -Ope6f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7d0] rol.w (a0) uses Ope7d0 ---------- -Ope7d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7d8] rol.w (a0)+ uses Ope7d8 ---------- -Ope7d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7e0] rol.w -(a0) uses Ope7e0 ---------- -Ope7e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7e8] rol.w ($3333,a0) uses Ope7e8 ---------- -Ope7e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7f0] rol.w ($33,a0,d3.w*2) uses Ope7f0 ---------- -Ope7f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldrsheq r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7f8] rol.w $3333.w uses Ope7f8 ---------- -Ope7f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7f9] rol.w $33333333.l uses Ope7f9 ---------- -Ope7f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee00] asr.b #7, d0 uses Opee00 ---------- -Opee00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #24 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee08] lsr.b #7, d0 uses Opee08 ---------- -Opee08: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #24 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee10] roxr.b #7, d0 uses Opee10 ---------- -Opee10: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee18] ror.b #7, d0 uses Opee18 ---------- -Opee18: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee40] asr.w #7, d0 uses Opee40 ---------- -Opee40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee48] lsr.w #7, d0 uses Opee48 ---------- -Opee48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee50] roxr.w #7, d0 uses Opee50 ---------- -Opee50: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee58] ror.w #7, d0 uses Opee58 ---------- -Opee58: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee80] asr.l #7, d0 uses Opee80 ---------- -Opee80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee88] lsr.l #7, d0 uses Opee88 ---------- -Opee88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee90] roxr.l #7, d0 uses Opee90 ---------- -Opee90: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee98] ror.l #7, d0 uses Opee98 ---------- -Opee98: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef00] asl.b #7, d0 uses Opef00 ---------- -Opef00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef08] lsl.b #7, d0 uses Opef08 ---------- -Opef08: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef10] roxl.b #7, d0 uses Opef10 ---------- -Opef10: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - rsb r2,r2,#9 ;@ Reverse direction - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef18] rol.b #7, d0 uses Opef18 ---------- -Opef18: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef40] asl.w #7, d0 uses Opef40 ---------- -Opef40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef48] lsl.w #7, d0 uses Opef48 ---------- -Opef48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef50] roxl.w #7, d0 uses Opef50 ---------- -Opef50: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - rsb r2,r2,#17 ;@ Reverse direction - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef58] rol.w #7, d0 uses Opef58 ---------- -Opef58: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef80] asl.l #7, d0 uses Opef80 ---------- -Opef80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef88] lsl.l #7, d0 uses Opef88 ---------- -Opef88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef90] roxl.l #7, d0 uses Opef90 ---------- -Opef90: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - rsb r2,r2,#33 ;@ Reverse direction - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef98] rol.l #7, d0 uses Opef98 ---------- -Opef98: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- -;@ tried execute privileged instruction in user mode -WrongPrivilegeMode: - ldr r1,[r7,#0x58] - sub r4,r4,#2 ;@ last opcode wasn't executed - go back - orr r1,r1,#4 ;@ set activity bit: 'not processing instruction' - str r1,[r7,#0x58] - mov r0,#8 ;@ privilege violation - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ -------------------------- Jump Table -------------------------- - .data - .align 4 - -CycloneJumpTab: - .long Op0000,Op0000,Op0000,Op0000,Op0000,Op0000,Op0000,Op0000 ;@ 0000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0008 - .long Op0010,Op0010,Op0010,Op0010,Op0010,Op0010,Op0010,Op0010 ;@ 0010 - .long Op0018,Op0018,Op0018,Op0018,Op0018,Op0018,Op0018,Op001f ;@ 0018 - .long Op0020,Op0020,Op0020,Op0020,Op0020,Op0020,Op0020,Op0027 ;@ 0020 - .long Op0028,Op0028,Op0028,Op0028,Op0028,Op0028,Op0028,Op0028 ;@ 0028 - .long Op0030,Op0030,Op0030,Op0030,Op0030,Op0030,Op0030,Op0030 ;@ 0030 - .long Op0038,Op0039,Op____,Op____,Op003c,Op____,Op____,Op____ ;@ 0038 - .long Op0040,Op0040,Op0040,Op0040,Op0040,Op0040,Op0040,Op0040 ;@ 0040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0048 - .long Op0050,Op0050,Op0050,Op0050,Op0050,Op0050,Op0050,Op0050 ;@ 0050 - .long Op0058,Op0058,Op0058,Op0058,Op0058,Op0058,Op0058,Op0058 ;@ 0058 - .long Op0060,Op0060,Op0060,Op0060,Op0060,Op0060,Op0060,Op0060 ;@ 0060 - .long Op0068,Op0068,Op0068,Op0068,Op0068,Op0068,Op0068,Op0068 ;@ 0068 - .long Op0070,Op0070,Op0070,Op0070,Op0070,Op0070,Op0070,Op0070 ;@ 0070 - .long Op0078,Op0079,Op____,Op____,Op007c,Op____,Op____,Op____ ;@ 0078 - .long Op0080,Op0080,Op0080,Op0080,Op0080,Op0080,Op0080,Op0080 ;@ 0080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0088 - .long Op0090,Op0090,Op0090,Op0090,Op0090,Op0090,Op0090,Op0090 ;@ 0090 - .long Op0098,Op0098,Op0098,Op0098,Op0098,Op0098,Op0098,Op0098 ;@ 0098 - .long Op00a0,Op00a0,Op00a0,Op00a0,Op00a0,Op00a0,Op00a0,Op00a0 ;@ 00a0 - .long Op00a8,Op00a8,Op00a8,Op00a8,Op00a8,Op00a8,Op00a8,Op00a8 ;@ 00a8 - .long Op00b0,Op00b0,Op00b0,Op00b0,Op00b0,Op00b0,Op00b0,Op00b0 ;@ 00b0 - .long Op00b8,Op00b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0100 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0108 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0110 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0118 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0120 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0128 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0130 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0138 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0140 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0148 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0150 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0158 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0160 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0168 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0170 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0178 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0180 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0188 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0190 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0198 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 01a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 01a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 01b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 01b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 01c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 01c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 01d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 01d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 01e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 01e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 01f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 01f8 - .long Op0200,Op0200,Op0200,Op0200,Op0200,Op0200,Op0200,Op0200 ;@ 0200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0208 - .long Op0210,Op0210,Op0210,Op0210,Op0210,Op0210,Op0210,Op0210 ;@ 0210 - .long Op0218,Op0218,Op0218,Op0218,Op0218,Op0218,Op0218,Op021f ;@ 0218 - .long Op0220,Op0220,Op0220,Op0220,Op0220,Op0220,Op0220,Op0227 ;@ 0220 - .long Op0228,Op0228,Op0228,Op0228,Op0228,Op0228,Op0228,Op0228 ;@ 0228 - .long Op0230,Op0230,Op0230,Op0230,Op0230,Op0230,Op0230,Op0230 ;@ 0230 - .long Op0238,Op0239,Op____,Op____,Op023c,Op____,Op____,Op____ ;@ 0238 - .long Op0240,Op0240,Op0240,Op0240,Op0240,Op0240,Op0240,Op0240 ;@ 0240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0248 - .long Op0250,Op0250,Op0250,Op0250,Op0250,Op0250,Op0250,Op0250 ;@ 0250 - .long Op0258,Op0258,Op0258,Op0258,Op0258,Op0258,Op0258,Op0258 ;@ 0258 - .long Op0260,Op0260,Op0260,Op0260,Op0260,Op0260,Op0260,Op0260 ;@ 0260 - .long Op0268,Op0268,Op0268,Op0268,Op0268,Op0268,Op0268,Op0268 ;@ 0268 - .long Op0270,Op0270,Op0270,Op0270,Op0270,Op0270,Op0270,Op0270 ;@ 0270 - .long Op0278,Op0279,Op____,Op____,Op027c,Op____,Op____,Op____ ;@ 0278 - .long Op0280,Op0280,Op0280,Op0280,Op0280,Op0280,Op0280,Op0280 ;@ 0280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0288 - .long Op0290,Op0290,Op0290,Op0290,Op0290,Op0290,Op0290,Op0290 ;@ 0290 - .long Op0298,Op0298,Op0298,Op0298,Op0298,Op0298,Op0298,Op0298 ;@ 0298 - .long Op02a0,Op02a0,Op02a0,Op02a0,Op02a0,Op02a0,Op02a0,Op02a0 ;@ 02a0 - .long Op02a8,Op02a8,Op02a8,Op02a8,Op02a8,Op02a8,Op02a8,Op02a8 ;@ 02a8 - .long Op02b0,Op02b0,Op02b0,Op02b0,Op02b0,Op02b0,Op02b0,Op02b0 ;@ 02b0 - .long Op02b8,Op02b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0300 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0308 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0310 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0318 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0320 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0328 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0330 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0338 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0340 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0348 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0350 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0358 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0360 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0368 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0370 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0378 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0380 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0388 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0390 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0398 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 03a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 03a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 03b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 03b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 03c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 03c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 03d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 03d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 03e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 03e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 03f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 03f8 - .long Op0400,Op0400,Op0400,Op0400,Op0400,Op0400,Op0400,Op0400 ;@ 0400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0408 - .long Op0410,Op0410,Op0410,Op0410,Op0410,Op0410,Op0410,Op0410 ;@ 0410 - .long Op0418,Op0418,Op0418,Op0418,Op0418,Op0418,Op0418,Op041f ;@ 0418 - .long Op0420,Op0420,Op0420,Op0420,Op0420,Op0420,Op0420,Op0427 ;@ 0420 - .long Op0428,Op0428,Op0428,Op0428,Op0428,Op0428,Op0428,Op0428 ;@ 0428 - .long Op0430,Op0430,Op0430,Op0430,Op0430,Op0430,Op0430,Op0430 ;@ 0430 - .long Op0438,Op0439,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0438 - .long Op0440,Op0440,Op0440,Op0440,Op0440,Op0440,Op0440,Op0440 ;@ 0440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0448 - .long Op0450,Op0450,Op0450,Op0450,Op0450,Op0450,Op0450,Op0450 ;@ 0450 - .long Op0458,Op0458,Op0458,Op0458,Op0458,Op0458,Op0458,Op0458 ;@ 0458 - .long Op0460,Op0460,Op0460,Op0460,Op0460,Op0460,Op0460,Op0460 ;@ 0460 - .long Op0468,Op0468,Op0468,Op0468,Op0468,Op0468,Op0468,Op0468 ;@ 0468 - .long Op0470,Op0470,Op0470,Op0470,Op0470,Op0470,Op0470,Op0470 ;@ 0470 - .long Op0478,Op0479,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0478 - .long Op0480,Op0480,Op0480,Op0480,Op0480,Op0480,Op0480,Op0480 ;@ 0480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0488 - .long Op0490,Op0490,Op0490,Op0490,Op0490,Op0490,Op0490,Op0490 ;@ 0490 - .long Op0498,Op0498,Op0498,Op0498,Op0498,Op0498,Op0498,Op0498 ;@ 0498 - .long Op04a0,Op04a0,Op04a0,Op04a0,Op04a0,Op04a0,Op04a0,Op04a0 ;@ 04a0 - .long Op04a8,Op04a8,Op04a8,Op04a8,Op04a8,Op04a8,Op04a8,Op04a8 ;@ 04a8 - .long Op04b0,Op04b0,Op04b0,Op04b0,Op04b0,Op04b0,Op04b0,Op04b0 ;@ 04b0 - .long Op04b8,Op04b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0500 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0508 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0510 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0518 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0520 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0528 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0530 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0538 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0540 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0548 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0550 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0558 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0560 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0568 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0570 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0578 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0580 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0588 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0590 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0598 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 05a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 05a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 05b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 05b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 05c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 05c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 05d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 05d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 05e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 05e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 05f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 05f8 - .long Op0600,Op0600,Op0600,Op0600,Op0600,Op0600,Op0600,Op0600 ;@ 0600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0608 - .long Op0610,Op0610,Op0610,Op0610,Op0610,Op0610,Op0610,Op0610 ;@ 0610 - .long Op0618,Op0618,Op0618,Op0618,Op0618,Op0618,Op0618,Op061f ;@ 0618 - .long Op0620,Op0620,Op0620,Op0620,Op0620,Op0620,Op0620,Op0627 ;@ 0620 - .long Op0628,Op0628,Op0628,Op0628,Op0628,Op0628,Op0628,Op0628 ;@ 0628 - .long Op0630,Op0630,Op0630,Op0630,Op0630,Op0630,Op0630,Op0630 ;@ 0630 - .long Op0638,Op0639,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0638 - .long Op0640,Op0640,Op0640,Op0640,Op0640,Op0640,Op0640,Op0640 ;@ 0640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0648 - .long Op0650,Op0650,Op0650,Op0650,Op0650,Op0650,Op0650,Op0650 ;@ 0650 - .long Op0658,Op0658,Op0658,Op0658,Op0658,Op0658,Op0658,Op0658 ;@ 0658 - .long Op0660,Op0660,Op0660,Op0660,Op0660,Op0660,Op0660,Op0660 ;@ 0660 - .long Op0668,Op0668,Op0668,Op0668,Op0668,Op0668,Op0668,Op0668 ;@ 0668 - .long Op0670,Op0670,Op0670,Op0670,Op0670,Op0670,Op0670,Op0670 ;@ 0670 - .long Op0678,Op0679,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0678 - .long Op0680,Op0680,Op0680,Op0680,Op0680,Op0680,Op0680,Op0680 ;@ 0680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0688 - .long Op0690,Op0690,Op0690,Op0690,Op0690,Op0690,Op0690,Op0690 ;@ 0690 - .long Op0698,Op0698,Op0698,Op0698,Op0698,Op0698,Op0698,Op0698 ;@ 0698 - .long Op06a0,Op06a0,Op06a0,Op06a0,Op06a0,Op06a0,Op06a0,Op06a0 ;@ 06a0 - .long Op06a8,Op06a8,Op06a8,Op06a8,Op06a8,Op06a8,Op06a8,Op06a8 ;@ 06a8 - .long Op06b0,Op06b0,Op06b0,Op06b0,Op06b0,Op06b0,Op06b0,Op06b0 ;@ 06b0 - .long Op06b8,Op06b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0700 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0708 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0710 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0718 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0720 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0728 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0730 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0738 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0740 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0748 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0750 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0758 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0760 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0768 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0770 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0778 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0780 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0788 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0790 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0798 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 07a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 07a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 07b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 07b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 07c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 07c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 07d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 07d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 07e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 07e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 07f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 07f8 - .long Op0800,Op0800,Op0800,Op0800,Op0800,Op0800,Op0800,Op0800 ;@ 0800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0808 - .long Op0810,Op0810,Op0810,Op0810,Op0810,Op0810,Op0810,Op0810 ;@ 0810 - .long Op0818,Op0818,Op0818,Op0818,Op0818,Op0818,Op0818,Op081f ;@ 0818 - .long Op0820,Op0820,Op0820,Op0820,Op0820,Op0820,Op0820,Op0827 ;@ 0820 - .long Op0828,Op0828,Op0828,Op0828,Op0828,Op0828,Op0828,Op0828 ;@ 0828 - .long Op0830,Op0830,Op0830,Op0830,Op0830,Op0830,Op0830,Op0830 ;@ 0830 - .long Op0838,Op0839,Op083a,Op083b,Op____,Op____,Op____,Op____ ;@ 0838 - .long Op0840,Op0840,Op0840,Op0840,Op0840,Op0840,Op0840,Op0840 ;@ 0840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0848 - .long Op0850,Op0850,Op0850,Op0850,Op0850,Op0850,Op0850,Op0850 ;@ 0850 - .long Op0858,Op0858,Op0858,Op0858,Op0858,Op0858,Op0858,Op085f ;@ 0858 - .long Op0860,Op0860,Op0860,Op0860,Op0860,Op0860,Op0860,Op0867 ;@ 0860 - .long Op0868,Op0868,Op0868,Op0868,Op0868,Op0868,Op0868,Op0868 ;@ 0868 - .long Op0870,Op0870,Op0870,Op0870,Op0870,Op0870,Op0870,Op0870 ;@ 0870 - .long Op0878,Op0879,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0878 - .long Op0880,Op0880,Op0880,Op0880,Op0880,Op0880,Op0880,Op0880 ;@ 0880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0888 - .long Op0890,Op0890,Op0890,Op0890,Op0890,Op0890,Op0890,Op0890 ;@ 0890 - .long Op0898,Op0898,Op0898,Op0898,Op0898,Op0898,Op0898,Op089f ;@ 0898 - .long Op08a0,Op08a0,Op08a0,Op08a0,Op08a0,Op08a0,Op08a0,Op08a7 ;@ 08a0 - .long Op08a8,Op08a8,Op08a8,Op08a8,Op08a8,Op08a8,Op08a8,Op08a8 ;@ 08a8 - .long Op08b0,Op08b0,Op08b0,Op08b0,Op08b0,Op08b0,Op08b0,Op08b0 ;@ 08b0 - .long Op08b8,Op08b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 08b8 - .long Op08c0,Op08c0,Op08c0,Op08c0,Op08c0,Op08c0,Op08c0,Op08c0 ;@ 08c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 08c8 - .long Op08d0,Op08d0,Op08d0,Op08d0,Op08d0,Op08d0,Op08d0,Op08d0 ;@ 08d0 - .long Op08d8,Op08d8,Op08d8,Op08d8,Op08d8,Op08d8,Op08d8,Op08df ;@ 08d8 - .long Op08e0,Op08e0,Op08e0,Op08e0,Op08e0,Op08e0,Op08e0,Op08e7 ;@ 08e0 - .long Op08e8,Op08e8,Op08e8,Op08e8,Op08e8,Op08e8,Op08e8,Op08e8 ;@ 08e8 - .long Op08f0,Op08f0,Op08f0,Op08f0,Op08f0,Op08f0,Op08f0,Op08f0 ;@ 08f0 - .long Op08f8,Op08f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 08f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0900 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0908 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0910 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0918 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0920 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0928 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0930 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0938 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0940 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0948 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0950 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0958 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0960 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0968 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0970 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0978 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0980 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0988 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0990 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0998 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 09a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 09a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 09b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 09b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 09c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 09c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 09d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 09d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 09e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 09e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 09f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 09f8 - .long Op0a00,Op0a00,Op0a00,Op0a00,Op0a00,Op0a00,Op0a00,Op0a00 ;@ 0a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0a08 - .long Op0a10,Op0a10,Op0a10,Op0a10,Op0a10,Op0a10,Op0a10,Op0a10 ;@ 0a10 - .long Op0a18,Op0a18,Op0a18,Op0a18,Op0a18,Op0a18,Op0a18,Op0a1f ;@ 0a18 - .long Op0a20,Op0a20,Op0a20,Op0a20,Op0a20,Op0a20,Op0a20,Op0a27 ;@ 0a20 - .long Op0a28,Op0a28,Op0a28,Op0a28,Op0a28,Op0a28,Op0a28,Op0a28 ;@ 0a28 - .long Op0a30,Op0a30,Op0a30,Op0a30,Op0a30,Op0a30,Op0a30,Op0a30 ;@ 0a30 - .long Op0a38,Op0a39,Op____,Op____,Op0a3c,Op____,Op____,Op____ ;@ 0a38 - .long Op0a40,Op0a40,Op0a40,Op0a40,Op0a40,Op0a40,Op0a40,Op0a40 ;@ 0a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0a48 - .long Op0a50,Op0a50,Op0a50,Op0a50,Op0a50,Op0a50,Op0a50,Op0a50 ;@ 0a50 - .long Op0a58,Op0a58,Op0a58,Op0a58,Op0a58,Op0a58,Op0a58,Op0a58 ;@ 0a58 - .long Op0a60,Op0a60,Op0a60,Op0a60,Op0a60,Op0a60,Op0a60,Op0a60 ;@ 0a60 - .long Op0a68,Op0a68,Op0a68,Op0a68,Op0a68,Op0a68,Op0a68,Op0a68 ;@ 0a68 - .long Op0a70,Op0a70,Op0a70,Op0a70,Op0a70,Op0a70,Op0a70,Op0a70 ;@ 0a70 - .long Op0a78,Op0a79,Op____,Op____,Op0a7c,Op____,Op____,Op____ ;@ 0a78 - .long Op0a80,Op0a80,Op0a80,Op0a80,Op0a80,Op0a80,Op0a80,Op0a80 ;@ 0a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0a88 - .long Op0a90,Op0a90,Op0a90,Op0a90,Op0a90,Op0a90,Op0a90,Op0a90 ;@ 0a90 - .long Op0a98,Op0a98,Op0a98,Op0a98,Op0a98,Op0a98,Op0a98,Op0a98 ;@ 0a98 - .long Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0 ;@ 0aa0 - .long Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8 ;@ 0aa8 - .long Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0 ;@ 0ab0 - .long Op0ab8,Op0ab9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ab8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ac8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ad0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ad8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ae0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ae8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0af0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0af8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0b00 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0b08 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0b10 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0b18 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0b20 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0b28 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0b30 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0b38 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0b40 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0b48 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0b50 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0b58 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0b60 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0b68 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0b70 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0b78 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0b80 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0b88 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0b90 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0b98 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 0ba0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 0ba8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 0bb0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0bb8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 0bc0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 0bc8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 0bd0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 0bd8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 0be0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 0be8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 0bf0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0bf8 - .long Op0c00,Op0c00,Op0c00,Op0c00,Op0c00,Op0c00,Op0c00,Op0c00 ;@ 0c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c08 - .long Op0c10,Op0c10,Op0c10,Op0c10,Op0c10,Op0c10,Op0c10,Op0c10 ;@ 0c10 - .long Op0c18,Op0c18,Op0c18,Op0c18,Op0c18,Op0c18,Op0c18,Op0c1f ;@ 0c18 - .long Op0c20,Op0c20,Op0c20,Op0c20,Op0c20,Op0c20,Op0c20,Op0c27 ;@ 0c20 - .long Op0c28,Op0c28,Op0c28,Op0c28,Op0c28,Op0c28,Op0c28,Op0c28 ;@ 0c28 - .long Op0c30,Op0c30,Op0c30,Op0c30,Op0c30,Op0c30,Op0c30,Op0c30 ;@ 0c30 - .long Op0c38,Op0c39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c38 - .long Op0c40,Op0c40,Op0c40,Op0c40,Op0c40,Op0c40,Op0c40,Op0c40 ;@ 0c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c48 - .long Op0c50,Op0c50,Op0c50,Op0c50,Op0c50,Op0c50,Op0c50,Op0c50 ;@ 0c50 - .long Op0c58,Op0c58,Op0c58,Op0c58,Op0c58,Op0c58,Op0c58,Op0c58 ;@ 0c58 - .long Op0c60,Op0c60,Op0c60,Op0c60,Op0c60,Op0c60,Op0c60,Op0c60 ;@ 0c60 - .long Op0c68,Op0c68,Op0c68,Op0c68,Op0c68,Op0c68,Op0c68,Op0c68 ;@ 0c68 - .long Op0c70,Op0c70,Op0c70,Op0c70,Op0c70,Op0c70,Op0c70,Op0c70 ;@ 0c70 - .long Op0c78,Op0c79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c78 - .long Op0c80,Op0c80,Op0c80,Op0c80,Op0c80,Op0c80,Op0c80,Op0c80 ;@ 0c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c88 - .long Op0c90,Op0c90,Op0c90,Op0c90,Op0c90,Op0c90,Op0c90,Op0c90 ;@ 0c90 - .long Op0c98,Op0c98,Op0c98,Op0c98,Op0c98,Op0c98,Op0c98,Op0c98 ;@ 0c98 - .long Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0 ;@ 0ca0 - .long Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8 ;@ 0ca8 - .long Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0 ;@ 0cb0 - .long Op0cb8,Op0cb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ce0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ce8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cf8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0d00 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0d08 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0d10 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0d18 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0d20 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0d28 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0d30 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0d38 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0d40 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0d48 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0d50 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0d58 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0d60 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0d68 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0d70 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0d78 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0d80 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0d88 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0d90 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0d98 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 0da0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 0da8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 0db0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0db8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 0dc0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 0dc8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 0dd0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 0dd8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 0de0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 0de8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 0df0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0df8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ea0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ea8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0eb0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0eb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ec8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ed0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ed8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ee0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ee8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ef0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ef8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0f00 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0f08 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0f10 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0f18 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0f20 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0f28 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0f30 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0f38 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0f40 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0f48 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0f50 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0f58 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0f60 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0f68 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0f70 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0f78 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0f80 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0f88 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0f90 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0f98 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 0fa0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 0fa8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 0fb0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0fb8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 0fc0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 0fc8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 0fd0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 0fd8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 0fe0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 0fe8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 0ff0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ff8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1008 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1010 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1018 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1020 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1028 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1030 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1038 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1048 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1050 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1058 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1060 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1068 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1070 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1078 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1088 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1090 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1098 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 10a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 10a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 10b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 10b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 10c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 10c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 10d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 10d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 10e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 10e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 10f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 10f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1108 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1110 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1118 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1120 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1128 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1130 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1138 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1148 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1150 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1158 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1160 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1168 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1170 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1178 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1188 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1190 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1198 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 11a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 11a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 11b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 11b8 - .long Op11c0,Op11c0,Op11c0,Op11c0,Op11c0,Op11c0,Op11c0,Op11c0 ;@ 11c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 11c8 - .long Op11d0,Op11d0,Op11d0,Op11d0,Op11d0,Op11d0,Op11d0,Op11d0 ;@ 11d0 - .long Op11d8,Op11d8,Op11d8,Op11d8,Op11d8,Op11d8,Op11d8,Op11df ;@ 11d8 - .long Op11e0,Op11e0,Op11e0,Op11e0,Op11e0,Op11e0,Op11e0,Op11e7 ;@ 11e0 - .long Op11e8,Op11e8,Op11e8,Op11e8,Op11e8,Op11e8,Op11e8,Op11e8 ;@ 11e8 - .long Op11f0,Op11f0,Op11f0,Op11f0,Op11f0,Op11f0,Op11f0,Op11f0 ;@ 11f0 - .long Op11f8,Op11f9,Op11fa,Op11fb,Op11fc,Op____,Op____,Op____ ;@ 11f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1208 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1210 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1218 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1220 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1228 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1230 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1238 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1248 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1250 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1258 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1260 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1268 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1270 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1278 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1288 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1290 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1298 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 12a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 12a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 12b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 12b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 12c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 12c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 12d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 12d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 12e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 12e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 12f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 12f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1308 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1310 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1318 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1320 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1328 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1330 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1338 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1348 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1350 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1358 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1360 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1368 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1370 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1378 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1388 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1390 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1398 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 13a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 13a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 13b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 13b8 - .long Op13c0,Op13c0,Op13c0,Op13c0,Op13c0,Op13c0,Op13c0,Op13c0 ;@ 13c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 13c8 - .long Op13d0,Op13d0,Op13d0,Op13d0,Op13d0,Op13d0,Op13d0,Op13d0 ;@ 13d0 - .long Op13d8,Op13d8,Op13d8,Op13d8,Op13d8,Op13d8,Op13d8,Op13df ;@ 13d8 - .long Op13e0,Op13e0,Op13e0,Op13e0,Op13e0,Op13e0,Op13e0,Op13e7 ;@ 13e0 - .long Op13e8,Op13e8,Op13e8,Op13e8,Op13e8,Op13e8,Op13e8,Op13e8 ;@ 13e8 - .long Op13f0,Op13f0,Op13f0,Op13f0,Op13f0,Op13f0,Op13f0,Op13f0 ;@ 13f0 - .long Op13f8,Op13f9,Op13fa,Op13fb,Op13fc,Op____,Op____,Op____ ;@ 13f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1408 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1410 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1418 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1420 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1428 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1430 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1438 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1448 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1450 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1458 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1460 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1468 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1470 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1478 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1488 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1490 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1498 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 14a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 14a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 14b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 14b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 14c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 14c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 14d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 14d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 14e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 14e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 14f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 14f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1508 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1510 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1518 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1520 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1528 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1530 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1538 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1548 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1550 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1558 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1560 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1568 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1570 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1578 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1588 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1590 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1598 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 15a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 15a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 15b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 15b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1608 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1610 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1618 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1620 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1628 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1630 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1638 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1648 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1650 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1658 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1660 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1668 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1670 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1678 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1688 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1690 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1698 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 16a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 16a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 16b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 16b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 16c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 16c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 16d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 16d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 16e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 16e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 16f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 16f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1708 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1710 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1718 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1720 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1728 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1730 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1738 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1748 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1750 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1758 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1760 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1768 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1770 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1778 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1788 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1790 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1798 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 17a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 17a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 17b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 17b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1808 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1810 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1818 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1820 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1828 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1830 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1838 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1848 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1850 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1858 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1860 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1868 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1870 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1878 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1888 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1890 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1898 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 18a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 18a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 18b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 18b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 18c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 18c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 18d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 18d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 18e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 18e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 18f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 18f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1908 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1910 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1918 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1920 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1928 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1930 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1938 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1948 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1950 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1958 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1960 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1968 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1970 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1978 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1988 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1990 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1998 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 19a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 19a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 19b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 19b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a08 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1a10 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1a18 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1a20 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1a28 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1a30 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1a38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a78 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a88 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1a90 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1a98 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 1aa0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 1aa8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 1ab0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 1ab8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 1ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ac8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 1ad0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 1ad8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 1ae0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 1ae8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 1af0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 1af8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1b08 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1b10 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1b18 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1b20 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1b28 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1b30 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1b38 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1b48 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1b50 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1b58 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1b60 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1b68 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1b70 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1b78 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1b88 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1b90 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1b98 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 1ba0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 1ba8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 1bb0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 1bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bf8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c08 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1c10 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1c18 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1c20 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1c28 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1c30 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1c38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c78 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c88 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1c90 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1c98 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 1ca0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 1ca8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 1cb0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 1cb8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 1cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1cc8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 1cd0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 1cd8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 1ce0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 1ce8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 1cf0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 1cf8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1d08 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1d10 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1d18 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1d20 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1d28 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1d30 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1d38 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1d48 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1d50 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1d58 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1d60 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1d68 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1d70 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1d78 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1d88 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1d90 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1d98 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 1da0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 1da8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 1db0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 1db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1df8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e08 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1e10 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1e18 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1e20 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1e28 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1e30 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1e38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e78 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e88 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1e90 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1e98 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 1ea0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 1ea8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 1eb0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 1eb8 - .long Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0 ;@ 1ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ec8 - .long Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0 ;@ 1ed0 - .long Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1edf ;@ 1ed8 - .long Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee7 ;@ 1ee0 - .long Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8 ;@ 1ee8 - .long Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0 ;@ 1ef0 - .long Op1ef8,Op1ef9,Op1efa,Op1efb,Op1efc,Op____,Op____,Op____ ;@ 1ef8 - .long Op1f00,Op1f00,Op1f00,Op1f00,Op1f00,Op1f00,Op1f00,Op1f00 ;@ 1f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1f08 - .long Op1f10,Op1f10,Op1f10,Op1f10,Op1f10,Op1f10,Op1f10,Op1f10 ;@ 1f10 - .long Op1f18,Op1f18,Op1f18,Op1f18,Op1f18,Op1f18,Op1f18,Op1f1f ;@ 1f18 - .long Op1f20,Op1f20,Op1f20,Op1f20,Op1f20,Op1f20,Op1f20,Op1f27 ;@ 1f20 - .long Op1f28,Op1f28,Op1f28,Op1f28,Op1f28,Op1f28,Op1f28,Op1f28 ;@ 1f28 - .long Op1f30,Op1f30,Op1f30,Op1f30,Op1f30,Op1f30,Op1f30,Op1f30 ;@ 1f30 - .long Op1f38,Op1f39,Op1f3a,Op1f3b,Op1f3c,Op____,Op____,Op____ ;@ 1f38 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1f48 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1f50 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1f58 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1f60 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1f68 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1f70 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1f78 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1f88 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1f90 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1f98 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 1fa0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 1fa8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 1fb0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 1fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ff8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2000 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2008 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2010 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2018 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2020 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2028 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2030 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2038 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2040 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2048 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2050 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2058 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2060 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2068 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2070 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2078 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2080 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2088 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2090 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2098 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 20a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 20a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 20b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 20b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 20c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 20c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 20d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 20d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 20e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 20e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 20f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 20f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2100 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2108 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2110 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2118 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2120 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2128 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2130 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2138 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2140 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2148 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2150 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2158 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2160 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2168 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2170 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2178 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2180 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2188 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2190 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2198 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 21a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 21a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 21b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 21b8 - .long Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0 ;@ 21c0 - .long Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0 ;@ 21c8 - .long Op21d0,Op21d0,Op21d0,Op21d0,Op21d0,Op21d0,Op21d0,Op21d0 ;@ 21d0 - .long Op21d8,Op21d8,Op21d8,Op21d8,Op21d8,Op21d8,Op21d8,Op21d8 ;@ 21d8 - .long Op21e0,Op21e0,Op21e0,Op21e0,Op21e0,Op21e0,Op21e0,Op21e0 ;@ 21e0 - .long Op21e8,Op21e8,Op21e8,Op21e8,Op21e8,Op21e8,Op21e8,Op21e8 ;@ 21e8 - .long Op21f0,Op21f0,Op21f0,Op21f0,Op21f0,Op21f0,Op21f0,Op21f0 ;@ 21f0 - .long Op21f8,Op21f9,Op21fa,Op21fb,Op21fc,Op____,Op____,Op____ ;@ 21f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2200 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2208 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2210 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2218 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2220 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2228 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2230 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2238 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2240 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2248 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2250 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2258 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2260 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2268 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2270 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2278 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2280 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2288 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2290 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2298 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 22a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 22a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 22b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 22b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 22c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 22c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 22d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 22d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 22e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 22e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 22f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 22f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2300 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2308 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2310 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2318 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2320 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2328 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2330 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2338 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2340 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2348 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2350 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2358 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2360 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2368 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2370 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2378 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2380 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2388 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2390 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2398 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 23a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 23a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 23b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 23b8 - .long Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0 ;@ 23c0 - .long Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0 ;@ 23c8 - .long Op23d0,Op23d0,Op23d0,Op23d0,Op23d0,Op23d0,Op23d0,Op23d0 ;@ 23d0 - .long Op23d8,Op23d8,Op23d8,Op23d8,Op23d8,Op23d8,Op23d8,Op23d8 ;@ 23d8 - .long Op23e0,Op23e0,Op23e0,Op23e0,Op23e0,Op23e0,Op23e0,Op23e0 ;@ 23e0 - .long Op23e8,Op23e8,Op23e8,Op23e8,Op23e8,Op23e8,Op23e8,Op23e8 ;@ 23e8 - .long Op23f0,Op23f0,Op23f0,Op23f0,Op23f0,Op23f0,Op23f0,Op23f0 ;@ 23f0 - .long Op23f8,Op23f9,Op23fa,Op23fb,Op23fc,Op____,Op____,Op____ ;@ 23f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2400 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2408 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2410 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2418 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2420 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2428 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2430 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2438 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2440 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2448 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2450 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2458 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2460 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2468 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2470 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2478 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2480 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2488 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2490 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2498 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 24a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 24a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 24b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 24b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 24c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 24c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 24d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 24d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 24e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 24e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 24f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 24f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2500 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2508 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2510 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2518 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2520 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2528 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2530 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2538 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2540 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2548 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2550 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2558 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2560 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2568 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2570 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2578 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2580 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2588 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2590 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2598 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 25a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 25a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 25b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 25b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2600 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2608 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2610 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2618 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2620 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2628 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2630 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2638 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2640 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2648 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2650 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2658 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2660 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2668 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2670 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2678 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2680 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2688 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2690 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2698 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 26a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 26a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 26b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 26b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 26c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 26c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 26d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 26d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 26e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 26e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 26f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 26f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2700 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2708 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2710 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2718 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2720 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2728 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2730 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2738 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2740 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2748 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2750 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2758 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2760 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2768 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2770 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2778 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2780 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2788 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2790 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2798 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 27a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 27a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 27b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 27b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2800 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2808 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2810 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2818 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2820 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2828 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2830 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2838 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2840 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2848 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2850 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2858 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2860 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2868 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2870 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2878 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2880 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2888 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2890 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2898 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 28a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 28a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 28b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 28b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 28c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 28c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 28d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 28d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 28e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 28e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 28f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 28f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2900 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2908 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2910 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2918 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2920 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2928 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2930 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2938 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2940 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2948 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2950 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2958 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2960 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2968 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2970 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2978 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2980 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2988 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2990 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2998 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 29a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 29a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 29b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 29b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2a00 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2a08 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2a10 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2a18 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2a20 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2a28 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2a30 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2a38 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2a40 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2a48 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2a50 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2a58 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2a60 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2a68 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2a70 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2a78 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2a80 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2a88 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2a90 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2a98 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 2aa0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 2aa8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 2ab0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 2ab8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2ac0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2ac8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 2ad0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 2ad8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 2ae0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 2ae8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 2af0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 2af8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2b00 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2b08 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2b10 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2b18 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2b20 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2b28 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2b30 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2b38 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2b40 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2b48 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2b50 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2b58 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2b60 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2b68 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2b70 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2b78 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2b80 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2b88 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2b90 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2b98 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 2ba0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 2ba8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 2bb0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 2bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bf8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2c00 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2c08 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2c10 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2c18 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2c20 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2c28 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2c30 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2c38 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2c40 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2c48 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2c50 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2c58 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2c60 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2c68 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2c70 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2c78 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2c80 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2c88 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2c90 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2c98 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 2ca0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 2ca8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 2cb0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 2cb8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2cc0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2cc8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 2cd0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 2cd8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 2ce0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 2ce8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 2cf0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 2cf8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2d00 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2d08 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2d10 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2d18 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2d20 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2d28 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2d30 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2d38 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2d40 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2d48 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2d50 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2d58 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2d60 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2d68 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2d70 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2d78 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2d80 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2d88 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2d90 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2d98 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 2da0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 2da8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 2db0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 2db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2df8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2e00 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2e08 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2e10 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2e18 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2e20 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2e28 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2e30 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2e38 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2e40 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2e48 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2e50 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2e58 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2e60 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2e68 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2e70 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2e78 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2e80 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2e88 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2e90 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2e98 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 2ea0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 2ea8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 2eb0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 2eb8 - .long Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0 ;@ 2ec0 - .long Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0 ;@ 2ec8 - .long Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0 ;@ 2ed0 - .long Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8 ;@ 2ed8 - .long Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0 ;@ 2ee0 - .long Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8 ;@ 2ee8 - .long Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0 ;@ 2ef0 - .long Op2ef8,Op2ef9,Op2efa,Op2efb,Op2efc,Op____,Op____,Op____ ;@ 2ef8 - .long Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00 ;@ 2f00 - .long Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00 ;@ 2f08 - .long Op2f10,Op2f10,Op2f10,Op2f10,Op2f10,Op2f10,Op2f10,Op2f10 ;@ 2f10 - .long Op2f18,Op2f18,Op2f18,Op2f18,Op2f18,Op2f18,Op2f18,Op2f18 ;@ 2f18 - .long Op2f20,Op2f20,Op2f20,Op2f20,Op2f20,Op2f20,Op2f20,Op2f20 ;@ 2f20 - .long Op2f28,Op2f28,Op2f28,Op2f28,Op2f28,Op2f28,Op2f28,Op2f28 ;@ 2f28 - .long Op2f30,Op2f30,Op2f30,Op2f30,Op2f30,Op2f30,Op2f30,Op2f30 ;@ 2f30 - .long Op2f38,Op2f39,Op2f3a,Op2f3b,Op2f3c,Op____,Op____,Op____ ;@ 2f38 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2f40 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2f48 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2f50 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2f58 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2f60 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2f68 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2f70 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2f78 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2f80 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2f88 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2f90 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2f98 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 2fa0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 2fa8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 2fb0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 2fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2ff8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3000 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3008 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3010 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3018 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3020 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3028 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3030 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3038 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3040 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3048 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3050 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3058 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3060 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3068 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3070 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3078 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3080 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3088 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3090 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3098 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 30a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 30a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 30b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 30b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 30c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 30c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 30d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 30d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 30e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 30e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 30f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 30f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3100 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3108 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3110 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3118 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3120 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3128 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3130 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3138 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3140 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3148 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3150 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3158 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3160 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3168 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3170 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3178 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3180 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3188 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3190 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3198 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 31a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 31a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 31b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 31b8 - .long Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0 ;@ 31c0 - .long Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0 ;@ 31c8 - .long Op31d0,Op31d0,Op31d0,Op31d0,Op31d0,Op31d0,Op31d0,Op31d0 ;@ 31d0 - .long Op31d8,Op31d8,Op31d8,Op31d8,Op31d8,Op31d8,Op31d8,Op31d8 ;@ 31d8 - .long Op31e0,Op31e0,Op31e0,Op31e0,Op31e0,Op31e0,Op31e0,Op31e0 ;@ 31e0 - .long Op31e8,Op31e8,Op31e8,Op31e8,Op31e8,Op31e8,Op31e8,Op31e8 ;@ 31e8 - .long Op31f0,Op31f0,Op31f0,Op31f0,Op31f0,Op31f0,Op31f0,Op31f0 ;@ 31f0 - .long Op31f8,Op31f9,Op31fa,Op31fb,Op31fc,Op____,Op____,Op____ ;@ 31f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3200 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3208 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3210 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3218 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3220 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3228 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3230 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3238 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3240 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3248 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3250 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3258 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3260 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3268 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3270 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3278 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3280 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3288 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3290 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3298 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 32a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 32a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 32b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 32b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 32c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 32c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 32d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 32d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 32e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 32e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 32f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 32f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3300 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3308 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3310 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3318 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3320 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3328 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3330 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3338 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3340 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3348 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3350 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3358 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3360 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3368 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3370 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3378 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3380 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3388 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3390 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3398 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 33a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 33a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 33b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 33b8 - .long Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0 ;@ 33c0 - .long Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0 ;@ 33c8 - .long Op33d0,Op33d0,Op33d0,Op33d0,Op33d0,Op33d0,Op33d0,Op33d0 ;@ 33d0 - .long Op33d8,Op33d8,Op33d8,Op33d8,Op33d8,Op33d8,Op33d8,Op33d8 ;@ 33d8 - .long Op33e0,Op33e0,Op33e0,Op33e0,Op33e0,Op33e0,Op33e0,Op33e0 ;@ 33e0 - .long Op33e8,Op33e8,Op33e8,Op33e8,Op33e8,Op33e8,Op33e8,Op33e8 ;@ 33e8 - .long Op33f0,Op33f0,Op33f0,Op33f0,Op33f0,Op33f0,Op33f0,Op33f0 ;@ 33f0 - .long Op33f8,Op33f9,Op33fa,Op33fb,Op33fc,Op____,Op____,Op____ ;@ 33f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3400 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3408 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3410 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3418 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3420 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3428 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3430 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3438 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3440 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3448 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3450 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3458 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3460 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3468 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3470 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3478 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3480 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3488 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3490 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3498 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 34a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 34a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 34b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 34b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 34c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 34c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 34d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 34d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 34e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 34e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 34f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 34f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3500 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3508 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3510 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3518 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3520 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3528 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3530 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3538 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3540 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3548 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3550 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3558 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3560 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3568 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3570 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3578 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3580 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3588 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3590 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3598 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 35a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 35a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 35b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 35b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3600 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3608 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3610 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3618 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3620 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3628 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3630 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3638 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3640 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3648 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3650 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3658 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3660 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3668 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3670 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3678 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3680 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3688 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3690 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3698 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 36a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 36a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 36b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 36b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 36c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 36c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 36d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 36d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 36e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 36e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 36f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 36f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3700 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3708 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3710 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3718 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3720 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3728 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3730 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3738 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3740 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3748 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3750 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3758 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3760 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3768 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3770 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3778 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3780 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3788 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3790 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3798 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 37a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 37a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 37b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 37b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3800 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3808 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3810 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3818 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3820 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3828 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3830 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3838 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3840 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3848 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3850 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3858 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3860 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3868 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3870 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3878 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3880 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3888 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3890 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3898 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 38a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 38a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 38b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 38b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 38c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 38c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 38d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 38d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 38e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 38e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 38f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 38f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3900 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3908 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3910 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3918 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3920 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3928 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3930 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3938 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3940 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3948 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3950 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3958 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3960 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3968 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3970 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3978 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3980 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3988 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3990 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3998 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 39a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 39a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 39b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 39b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3a00 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3a08 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3a10 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3a18 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3a20 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3a28 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3a30 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3a38 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3a40 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3a48 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3a50 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3a58 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3a60 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3a68 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3a70 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3a78 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3a80 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3a88 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3a90 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3a98 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 3aa0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 3aa8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 3ab0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 3ab8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3ac0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3ac8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 3ad0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 3ad8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 3ae0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 3ae8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 3af0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 3af8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3b00 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3b08 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3b10 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3b18 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3b20 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3b28 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3b30 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3b38 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3b40 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3b48 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3b50 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3b58 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3b60 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3b68 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3b70 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3b78 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3b80 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3b88 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3b90 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3b98 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 3ba0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 3ba8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 3bb0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 3bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bf8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3c00 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3c08 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3c10 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3c18 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3c20 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3c28 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3c30 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3c38 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3c40 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3c48 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3c50 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3c58 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3c60 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3c68 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3c70 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3c78 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3c80 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3c88 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3c90 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3c98 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 3ca0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 3ca8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 3cb0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 3cb8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3cc0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3cc8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 3cd0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 3cd8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 3ce0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 3ce8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 3cf0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 3cf8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3d00 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3d08 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3d10 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3d18 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3d20 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3d28 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3d30 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3d38 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3d40 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3d48 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3d50 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3d58 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3d60 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3d68 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3d70 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3d78 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3d80 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3d88 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3d90 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3d98 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 3da0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 3da8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 3db0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 3db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3df8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3e00 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3e08 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3e10 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3e18 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3e20 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3e28 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3e30 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3e38 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3e40 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3e48 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3e50 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3e58 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3e60 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3e68 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3e70 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3e78 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3e80 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3e88 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3e90 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3e98 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 3ea0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 3ea8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 3eb0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 3eb8 - .long Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0 ;@ 3ec0 - .long Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0 ;@ 3ec8 - .long Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0 ;@ 3ed0 - .long Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8 ;@ 3ed8 - .long Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0 ;@ 3ee0 - .long Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8 ;@ 3ee8 - .long Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0 ;@ 3ef0 - .long Op3ef8,Op3ef9,Op3efa,Op3efb,Op3efc,Op____,Op____,Op____ ;@ 3ef8 - .long Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00 ;@ 3f00 - .long Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00 ;@ 3f08 - .long Op3f10,Op3f10,Op3f10,Op3f10,Op3f10,Op3f10,Op3f10,Op3f10 ;@ 3f10 - .long Op3f18,Op3f18,Op3f18,Op3f18,Op3f18,Op3f18,Op3f18,Op3f18 ;@ 3f18 - .long Op3f20,Op3f20,Op3f20,Op3f20,Op3f20,Op3f20,Op3f20,Op3f20 ;@ 3f20 - .long Op3f28,Op3f28,Op3f28,Op3f28,Op3f28,Op3f28,Op3f28,Op3f28 ;@ 3f28 - .long Op3f30,Op3f30,Op3f30,Op3f30,Op3f30,Op3f30,Op3f30,Op3f30 ;@ 3f30 - .long Op3f38,Op3f39,Op3f3a,Op3f3b,Op3f3c,Op____,Op____,Op____ ;@ 3f38 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3f40 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3f48 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3f50 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3f58 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3f60 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3f68 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3f70 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3f78 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3f80 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3f88 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3f90 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3f98 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 3fa0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 3fa8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 3fb0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 3fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3ff8 - .long Op4000,Op4000,Op4000,Op4000,Op4000,Op4000,Op4000,Op4000 ;@ 4000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4008 - .long Op4010,Op4010,Op4010,Op4010,Op4010,Op4010,Op4010,Op4010 ;@ 4010 - .long Op4018,Op4018,Op4018,Op4018,Op4018,Op4018,Op4018,Op401f ;@ 4018 - .long Op4020,Op4020,Op4020,Op4020,Op4020,Op4020,Op4020,Op4027 ;@ 4020 - .long Op4028,Op4028,Op4028,Op4028,Op4028,Op4028,Op4028,Op4028 ;@ 4028 - .long Op4030,Op4030,Op4030,Op4030,Op4030,Op4030,Op4030,Op4030 ;@ 4030 - .long Op4038,Op4039,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4038 - .long Op4040,Op4040,Op4040,Op4040,Op4040,Op4040,Op4040,Op4040 ;@ 4040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4048 - .long Op4050,Op4050,Op4050,Op4050,Op4050,Op4050,Op4050,Op4050 ;@ 4050 - .long Op4058,Op4058,Op4058,Op4058,Op4058,Op4058,Op4058,Op4058 ;@ 4058 - .long Op4060,Op4060,Op4060,Op4060,Op4060,Op4060,Op4060,Op4060 ;@ 4060 - .long Op4068,Op4068,Op4068,Op4068,Op4068,Op4068,Op4068,Op4068 ;@ 4068 - .long Op4070,Op4070,Op4070,Op4070,Op4070,Op4070,Op4070,Op4070 ;@ 4070 - .long Op4078,Op4079,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4078 - .long Op4080,Op4080,Op4080,Op4080,Op4080,Op4080,Op4080,Op4080 ;@ 4080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4088 - .long Op4090,Op4090,Op4090,Op4090,Op4090,Op4090,Op4090,Op4090 ;@ 4090 - .long Op4098,Op4098,Op4098,Op4098,Op4098,Op4098,Op4098,Op4098 ;@ 4098 - .long Op40a0,Op40a0,Op40a0,Op40a0,Op40a0,Op40a0,Op40a0,Op40a0 ;@ 40a0 - .long Op40a8,Op40a8,Op40a8,Op40a8,Op40a8,Op40a8,Op40a8,Op40a8 ;@ 40a8 - .long Op40b0,Op40b0,Op40b0,Op40b0,Op40b0,Op40b0,Op40b0,Op40b0 ;@ 40b0 - .long Op40b8,Op40b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 40b8 - .long Op40c0,Op40c0,Op40c0,Op40c0,Op40c0,Op40c0,Op40c0,Op40c0 ;@ 40c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 40c8 - .long Op40d0,Op40d0,Op40d0,Op40d0,Op40d0,Op40d0,Op40d0,Op40d0 ;@ 40d0 - .long Op40d8,Op40d8,Op40d8,Op40d8,Op40d8,Op40d8,Op40d8,Op40d8 ;@ 40d8 - .long Op40e0,Op40e0,Op40e0,Op40e0,Op40e0,Op40e0,Op40e0,Op40e0 ;@ 40e0 - .long Op40e8,Op40e8,Op40e8,Op40e8,Op40e8,Op40e8,Op40e8,Op40e8 ;@ 40e8 - .long Op40f0,Op40f0,Op40f0,Op40f0,Op40f0,Op40f0,Op40f0,Op40f0 ;@ 40f0 - .long Op40f8,Op40f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 40f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4108 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4110 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4118 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4120 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4128 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4130 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4138 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4148 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4150 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4158 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4160 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4168 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4170 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4178 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4188 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4190 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4198 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 41a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 41a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 41b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 41b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 41d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 41e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 41f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 41f8 - .long Op4200,Op4200,Op4200,Op4200,Op4200,Op4200,Op4200,Op4200 ;@ 4200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4208 - .long Op4210,Op4210,Op4210,Op4210,Op4210,Op4210,Op4210,Op4210 ;@ 4210 - .long Op4218,Op4218,Op4218,Op4218,Op4218,Op4218,Op4218,Op421f ;@ 4218 - .long Op4220,Op4220,Op4220,Op4220,Op4220,Op4220,Op4220,Op4227 ;@ 4220 - .long Op4228,Op4228,Op4228,Op4228,Op4228,Op4228,Op4228,Op4228 ;@ 4228 - .long Op4230,Op4230,Op4230,Op4230,Op4230,Op4230,Op4230,Op4230 ;@ 4230 - .long Op4238,Op4239,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4238 - .long Op4240,Op4240,Op4240,Op4240,Op4240,Op4240,Op4240,Op4240 ;@ 4240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4248 - .long Op4250,Op4250,Op4250,Op4250,Op4250,Op4250,Op4250,Op4250 ;@ 4250 - .long Op4258,Op4258,Op4258,Op4258,Op4258,Op4258,Op4258,Op4258 ;@ 4258 - .long Op4260,Op4260,Op4260,Op4260,Op4260,Op4260,Op4260,Op4260 ;@ 4260 - .long Op4268,Op4268,Op4268,Op4268,Op4268,Op4268,Op4268,Op4268 ;@ 4268 - .long Op4270,Op4270,Op4270,Op4270,Op4270,Op4270,Op4270,Op4270 ;@ 4270 - .long Op4278,Op4279,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4278 - .long Op4280,Op4280,Op4280,Op4280,Op4280,Op4280,Op4280,Op4280 ;@ 4280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4288 - .long Op4290,Op4290,Op4290,Op4290,Op4290,Op4290,Op4290,Op4290 ;@ 4290 - .long Op4298,Op4298,Op4298,Op4298,Op4298,Op4298,Op4298,Op4298 ;@ 4298 - .long Op42a0,Op42a0,Op42a0,Op42a0,Op42a0,Op42a0,Op42a0,Op42a0 ;@ 42a0 - .long Op42a8,Op42a8,Op42a8,Op42a8,Op42a8,Op42a8,Op42a8,Op42a8 ;@ 42a8 - .long Op42b0,Op42b0,Op42b0,Op42b0,Op42b0,Op42b0,Op42b0,Op42b0 ;@ 42b0 - .long Op42b8,Op42b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4308 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4310 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4318 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4320 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4328 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4330 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4338 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4348 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4350 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4358 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4360 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4368 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4370 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4378 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4388 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4390 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4398 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 43a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 43a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 43b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 43b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 43d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 43e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 43f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 43f8 - .long Op4400,Op4400,Op4400,Op4400,Op4400,Op4400,Op4400,Op4400 ;@ 4400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4408 - .long Op4410,Op4410,Op4410,Op4410,Op4410,Op4410,Op4410,Op4410 ;@ 4410 - .long Op4418,Op4418,Op4418,Op4418,Op4418,Op4418,Op4418,Op441f ;@ 4418 - .long Op4420,Op4420,Op4420,Op4420,Op4420,Op4420,Op4420,Op4427 ;@ 4420 - .long Op4428,Op4428,Op4428,Op4428,Op4428,Op4428,Op4428,Op4428 ;@ 4428 - .long Op4430,Op4430,Op4430,Op4430,Op4430,Op4430,Op4430,Op4430 ;@ 4430 - .long Op4438,Op4439,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4438 - .long Op4440,Op4440,Op4440,Op4440,Op4440,Op4440,Op4440,Op4440 ;@ 4440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4448 - .long Op4450,Op4450,Op4450,Op4450,Op4450,Op4450,Op4450,Op4450 ;@ 4450 - .long Op4458,Op4458,Op4458,Op4458,Op4458,Op4458,Op4458,Op4458 ;@ 4458 - .long Op4460,Op4460,Op4460,Op4460,Op4460,Op4460,Op4460,Op4460 ;@ 4460 - .long Op4468,Op4468,Op4468,Op4468,Op4468,Op4468,Op4468,Op4468 ;@ 4468 - .long Op4470,Op4470,Op4470,Op4470,Op4470,Op4470,Op4470,Op4470 ;@ 4470 - .long Op4478,Op4479,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4478 - .long Op4480,Op4480,Op4480,Op4480,Op4480,Op4480,Op4480,Op4480 ;@ 4480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4488 - .long Op4490,Op4490,Op4490,Op4490,Op4490,Op4490,Op4490,Op4490 ;@ 4490 - .long Op4498,Op4498,Op4498,Op4498,Op4498,Op4498,Op4498,Op4498 ;@ 4498 - .long Op44a0,Op44a0,Op44a0,Op44a0,Op44a0,Op44a0,Op44a0,Op44a0 ;@ 44a0 - .long Op44a8,Op44a8,Op44a8,Op44a8,Op44a8,Op44a8,Op44a8,Op44a8 ;@ 44a8 - .long Op44b0,Op44b0,Op44b0,Op44b0,Op44b0,Op44b0,Op44b0,Op44b0 ;@ 44b0 - .long Op44b8,Op44b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 44b8 - .long Op44c0,Op44c0,Op44c0,Op44c0,Op44c0,Op44c0,Op44c0,Op44c0 ;@ 44c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 44c8 - .long Op44d0,Op44d0,Op44d0,Op44d0,Op44d0,Op44d0,Op44d0,Op44d0 ;@ 44d0 - .long Op44d8,Op44d8,Op44d8,Op44d8,Op44d8,Op44d8,Op44d8,Op44d8 ;@ 44d8 - .long Op44e0,Op44e0,Op44e0,Op44e0,Op44e0,Op44e0,Op44e0,Op44e0 ;@ 44e0 - .long Op44e8,Op44e8,Op44e8,Op44e8,Op44e8,Op44e8,Op44e8,Op44e8 ;@ 44e8 - .long Op44f0,Op44f0,Op44f0,Op44f0,Op44f0,Op44f0,Op44f0,Op44f0 ;@ 44f0 - .long Op44f8,Op44f9,Op44fa,Op44fb,Op44fc,Op____,Op____,Op____ ;@ 44f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4508 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4510 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4518 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4520 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4528 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4530 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4538 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4548 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4550 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4558 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4560 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4568 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4570 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4578 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4588 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4590 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4598 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 45a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 45a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 45b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 45b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 45d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 45e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 45f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 45f8 - .long Op4600,Op4600,Op4600,Op4600,Op4600,Op4600,Op4600,Op4600 ;@ 4600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4608 - .long Op4610,Op4610,Op4610,Op4610,Op4610,Op4610,Op4610,Op4610 ;@ 4610 - .long Op4618,Op4618,Op4618,Op4618,Op4618,Op4618,Op4618,Op461f ;@ 4618 - .long Op4620,Op4620,Op4620,Op4620,Op4620,Op4620,Op4620,Op4627 ;@ 4620 - .long Op4628,Op4628,Op4628,Op4628,Op4628,Op4628,Op4628,Op4628 ;@ 4628 - .long Op4630,Op4630,Op4630,Op4630,Op4630,Op4630,Op4630,Op4630 ;@ 4630 - .long Op4638,Op4639,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4638 - .long Op4640,Op4640,Op4640,Op4640,Op4640,Op4640,Op4640,Op4640 ;@ 4640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4648 - .long Op4650,Op4650,Op4650,Op4650,Op4650,Op4650,Op4650,Op4650 ;@ 4650 - .long Op4658,Op4658,Op4658,Op4658,Op4658,Op4658,Op4658,Op4658 ;@ 4658 - .long Op4660,Op4660,Op4660,Op4660,Op4660,Op4660,Op4660,Op4660 ;@ 4660 - .long Op4668,Op4668,Op4668,Op4668,Op4668,Op4668,Op4668,Op4668 ;@ 4668 - .long Op4670,Op4670,Op4670,Op4670,Op4670,Op4670,Op4670,Op4670 ;@ 4670 - .long Op4678,Op4679,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4678 - .long Op4680,Op4680,Op4680,Op4680,Op4680,Op4680,Op4680,Op4680 ;@ 4680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4688 - .long Op4690,Op4690,Op4690,Op4690,Op4690,Op4690,Op4690,Op4690 ;@ 4690 - .long Op4698,Op4698,Op4698,Op4698,Op4698,Op4698,Op4698,Op4698 ;@ 4698 - .long Op46a0,Op46a0,Op46a0,Op46a0,Op46a0,Op46a0,Op46a0,Op46a0 ;@ 46a0 - .long Op46a8,Op46a8,Op46a8,Op46a8,Op46a8,Op46a8,Op46a8,Op46a8 ;@ 46a8 - .long Op46b0,Op46b0,Op46b0,Op46b0,Op46b0,Op46b0,Op46b0,Op46b0 ;@ 46b0 - .long Op46b8,Op46b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 46b8 - .long Op46c0,Op46c0,Op46c0,Op46c0,Op46c0,Op46c0,Op46c0,Op46c0 ;@ 46c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 46c8 - .long Op46d0,Op46d0,Op46d0,Op46d0,Op46d0,Op46d0,Op46d0,Op46d0 ;@ 46d0 - .long Op46d8,Op46d8,Op46d8,Op46d8,Op46d8,Op46d8,Op46d8,Op46d8 ;@ 46d8 - .long Op46e0,Op46e0,Op46e0,Op46e0,Op46e0,Op46e0,Op46e0,Op46e0 ;@ 46e0 - .long Op46e8,Op46e8,Op46e8,Op46e8,Op46e8,Op46e8,Op46e8,Op46e8 ;@ 46e8 - .long Op46f0,Op46f0,Op46f0,Op46f0,Op46f0,Op46f0,Op46f0,Op46f0 ;@ 46f0 - .long Op46f8,Op46f9,Op46fa,Op46fb,Op46fc,Op____,Op____,Op____ ;@ 46f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4708 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4710 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4718 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4720 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4728 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4730 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4738 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4748 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4750 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4758 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4760 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4768 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4770 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4778 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4788 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4790 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4798 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 47a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 47a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 47b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 47b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 47d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 47e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 47f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 47f8 - .long Op4800,Op4800,Op4800,Op4800,Op4800,Op4800,Op4800,Op4800 ;@ 4800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4808 - .long Op4810,Op4810,Op4810,Op4810,Op4810,Op4810,Op4810,Op4810 ;@ 4810 - .long Op4818,Op4818,Op4818,Op4818,Op4818,Op4818,Op4818,Op481f ;@ 4818 - .long Op4820,Op4820,Op4820,Op4820,Op4820,Op4820,Op4820,Op4827 ;@ 4820 - .long Op4828,Op4828,Op4828,Op4828,Op4828,Op4828,Op4828,Op4828 ;@ 4828 - .long Op4830,Op4830,Op4830,Op4830,Op4830,Op4830,Op4830,Op4830 ;@ 4830 - .long Op4838,Op4839,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4838 - .long Op4840,Op4840,Op4840,Op4840,Op4840,Op4840,Op4840,Op4840 ;@ 4840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4848 - .long Op4850,Op4850,Op4850,Op4850,Op4850,Op4850,Op4850,Op4850 ;@ 4850 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4858 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4860 - .long Op4868,Op4868,Op4868,Op4868,Op4868,Op4868,Op4868,Op4868 ;@ 4868 - .long Op4870,Op4870,Op4870,Op4870,Op4870,Op4870,Op4870,Op4870 ;@ 4870 - .long Op4878,Op4879,Op487a,Op487b,Op____,Op____,Op____,Op____ ;@ 4878 - .long Op4880,Op4880,Op4880,Op4880,Op4880,Op4880,Op4880,Op4880 ;@ 4880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4888 - .long Op4890,Op4890,Op4890,Op4890,Op4890,Op4890,Op4890,Op4890 ;@ 4890 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4898 - .long Op48a0,Op48a0,Op48a0,Op48a0,Op48a0,Op48a0,Op48a0,Op48a0 ;@ 48a0 - .long Op48a8,Op48a8,Op48a8,Op48a8,Op48a8,Op48a8,Op48a8,Op48a8 ;@ 48a8 - .long Op48b0,Op48b0,Op48b0,Op48b0,Op48b0,Op48b0,Op48b0,Op48b0 ;@ 48b0 - .long Op48b8,Op48b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48b8 - .long Op48c0,Op48c0,Op48c0,Op48c0,Op48c0,Op48c0,Op48c0,Op48c0 ;@ 48c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48c8 - .long Op48d0,Op48d0,Op48d0,Op48d0,Op48d0,Op48d0,Op48d0,Op48d0 ;@ 48d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48d8 - .long Op48e0,Op48e0,Op48e0,Op48e0,Op48e0,Op48e0,Op48e0,Op48e0 ;@ 48e0 - .long Op48e8,Op48e8,Op48e8,Op48e8,Op48e8,Op48e8,Op48e8,Op48e8 ;@ 48e8 - .long Op48f0,Op48f0,Op48f0,Op48f0,Op48f0,Op48f0,Op48f0,Op48f0 ;@ 48f0 - .long Op48f8,Op48f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4908 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4910 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4918 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4920 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4928 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4930 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4938 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4948 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4950 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4958 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4960 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4968 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4970 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4978 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4988 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4990 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4998 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 49a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 49a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 49b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 49b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 49d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 49e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 49f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 49f8 - .long Op4a00,Op4a00,Op4a00,Op4a00,Op4a00,Op4a00,Op4a00,Op4a00 ;@ 4a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a08 - .long Op4a10,Op4a10,Op4a10,Op4a10,Op4a10,Op4a10,Op4a10,Op4a10 ;@ 4a10 - .long Op4a18,Op4a18,Op4a18,Op4a18,Op4a18,Op4a18,Op4a18,Op4a1f ;@ 4a18 - .long Op4a20,Op4a20,Op4a20,Op4a20,Op4a20,Op4a20,Op4a20,Op4a27 ;@ 4a20 - .long Op4a28,Op4a28,Op4a28,Op4a28,Op4a28,Op4a28,Op4a28,Op4a28 ;@ 4a28 - .long Op4a30,Op4a30,Op4a30,Op4a30,Op4a30,Op4a30,Op4a30,Op4a30 ;@ 4a30 - .long Op4a38,Op4a39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a38 - .long Op4a40,Op4a40,Op4a40,Op4a40,Op4a40,Op4a40,Op4a40,Op4a40 ;@ 4a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a48 - .long Op4a50,Op4a50,Op4a50,Op4a50,Op4a50,Op4a50,Op4a50,Op4a50 ;@ 4a50 - .long Op4a58,Op4a58,Op4a58,Op4a58,Op4a58,Op4a58,Op4a58,Op4a58 ;@ 4a58 - .long Op4a60,Op4a60,Op4a60,Op4a60,Op4a60,Op4a60,Op4a60,Op4a60 ;@ 4a60 - .long Op4a68,Op4a68,Op4a68,Op4a68,Op4a68,Op4a68,Op4a68,Op4a68 ;@ 4a68 - .long Op4a70,Op4a70,Op4a70,Op4a70,Op4a70,Op4a70,Op4a70,Op4a70 ;@ 4a70 - .long Op4a78,Op4a79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a78 - .long Op4a80,Op4a80,Op4a80,Op4a80,Op4a80,Op4a80,Op4a80,Op4a80 ;@ 4a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a88 - .long Op4a90,Op4a90,Op4a90,Op4a90,Op4a90,Op4a90,Op4a90,Op4a90 ;@ 4a90 - .long Op4a98,Op4a98,Op4a98,Op4a98,Op4a98,Op4a98,Op4a98,Op4a98 ;@ 4a98 - .long Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0 ;@ 4aa0 - .long Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8 ;@ 4aa8 - .long Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0 ;@ 4ab0 - .long Op4ab8,Op4ab9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ab8 - .long Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0 ;@ 4ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ac8 - .long Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0 ;@ 4ad0 - .long Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4adf ;@ 4ad8 - .long Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae7 ;@ 4ae0 - .long Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8 ;@ 4ae8 - .long Op4af0,Op4af0,Op4af0,Op4af0,Op4af0,Op4af0,Op4af0,Op4af0 ;@ 4af0 - .long Op4af8,Op4af9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4af8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b78 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b88 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4b90 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4b98 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 4ba0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 4ba8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 4bb0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 4bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4bc8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 4bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4be0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 4be8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 4bf0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 4bf8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c88 - .long Op4c90,Op4c90,Op4c90,Op4c90,Op4c90,Op4c90,Op4c90,Op4c90 ;@ 4c90 - .long Op4c98,Op4c98,Op4c98,Op4c98,Op4c98,Op4c98,Op4c98,Op4c98 ;@ 4c98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ca0 - .long Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8 ;@ 4ca8 - .long Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0 ;@ 4cb0 - .long Op4cb8,Op4cb9,Op4cba,Op4cbb,Op____,Op____,Op____,Op____ ;@ 4cb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4cc8 - .long Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0 ;@ 4cd0 - .long Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8 ;@ 4cd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ce0 - .long Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8 ;@ 4ce8 - .long Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0 ;@ 4cf0 - .long Op4cf8,Op4cf9,Op4cfa,Op4cfb,Op____,Op____,Op____,Op____ ;@ 4cf8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d78 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d88 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4d90 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4d98 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 4da0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 4da8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 4db0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 4db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4dc8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 4dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4de0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 4de8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 4df0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 4df8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e38 - .long Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40 ;@ 4e40 - .long Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40 ;@ 4e48 - .long Op4e50,Op4e50,Op4e50,Op4e50,Op4e50,Op4e50,Op4e50,Op4e57 ;@ 4e50 - .long Op4e58,Op4e58,Op4e58,Op4e58,Op4e58,Op4e58,Op4e58,Op4e58 ;@ 4e58 - .long Op4e60,Op4e60,Op4e60,Op4e60,Op4e60,Op4e60,Op4e60,Op4e60 ;@ 4e60 - .long Op4e68,Op4e68,Op4e68,Op4e68,Op4e68,Op4e68,Op4e68,Op4e68 ;@ 4e68 - .long Op4e70,Op4e71,Op4e72,Op4e73,Op____,Op4e75,Op4e76,Op4e77 ;@ 4e70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e88 - .long Op4e90,Op4e90,Op4e90,Op4e90,Op4e90,Op4e90,Op4e90,Op4e90 ;@ 4e90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ea0 - .long Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8 ;@ 4ea8 - .long Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0 ;@ 4eb0 - .long Op4eb8,Op4eb9,Op4eba,Op4ebb,Op____,Op____,Op____,Op____ ;@ 4eb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ec8 - .long Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0 ;@ 4ed0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ed8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ee0 - .long Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8 ;@ 4ee8 - .long Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0 ;@ 4ef0 - .long Op4ef8,Op4ef9,Op4efa,Op4efb,Op____,Op____,Op____,Op____ ;@ 4ef8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f78 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f88 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4f90 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4f98 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 4fa0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 4fa8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 4fb0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 4fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fc8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 4fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fe0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 4fe8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 4ff0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 4ff8 - .long Op5000,Op5000,Op5000,Op5000,Op5000,Op5000,Op5000,Op5000 ;@ 5000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5008 - .long Op5010,Op5010,Op5010,Op5010,Op5010,Op5010,Op5010,Op5010 ;@ 5010 - .long Op5018,Op5018,Op5018,Op5018,Op5018,Op5018,Op5018,Op501f ;@ 5018 - .long Op5020,Op5020,Op5020,Op5020,Op5020,Op5020,Op5020,Op5027 ;@ 5020 - .long Op5028,Op5028,Op5028,Op5028,Op5028,Op5028,Op5028,Op5028 ;@ 5028 - .long Op5030,Op5030,Op5030,Op5030,Op5030,Op5030,Op5030,Op5030 ;@ 5030 - .long Op5038,Op5039,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5038 - .long Op5040,Op5040,Op5040,Op5040,Op5040,Op5040,Op5040,Op5040 ;@ 5040 - .long Op5048,Op5048,Op5048,Op5048,Op5048,Op5048,Op5048,Op5048 ;@ 5048 - .long Op5050,Op5050,Op5050,Op5050,Op5050,Op5050,Op5050,Op5050 ;@ 5050 - .long Op5058,Op5058,Op5058,Op5058,Op5058,Op5058,Op5058,Op5058 ;@ 5058 - .long Op5060,Op5060,Op5060,Op5060,Op5060,Op5060,Op5060,Op5060 ;@ 5060 - .long Op5068,Op5068,Op5068,Op5068,Op5068,Op5068,Op5068,Op5068 ;@ 5068 - .long Op5070,Op5070,Op5070,Op5070,Op5070,Op5070,Op5070,Op5070 ;@ 5070 - .long Op5078,Op5079,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5078 - .long Op5080,Op5080,Op5080,Op5080,Op5080,Op5080,Op5080,Op5080 ;@ 5080 - .long Op5088,Op5088,Op5088,Op5088,Op5088,Op5088,Op5088,Op5088 ;@ 5088 - .long Op5090,Op5090,Op5090,Op5090,Op5090,Op5090,Op5090,Op5090 ;@ 5090 - .long Op5098,Op5098,Op5098,Op5098,Op5098,Op5098,Op5098,Op5098 ;@ 5098 - .long Op50a0,Op50a0,Op50a0,Op50a0,Op50a0,Op50a0,Op50a0,Op50a0 ;@ 50a0 - .long Op50a8,Op50a8,Op50a8,Op50a8,Op50a8,Op50a8,Op50a8,Op50a8 ;@ 50a8 - .long Op50b0,Op50b0,Op50b0,Op50b0,Op50b0,Op50b0,Op50b0,Op50b0 ;@ 50b0 - .long Op50b8,Op50b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 50b8 - .long Op50c0,Op50c0,Op50c0,Op50c0,Op50c0,Op50c0,Op50c0,Op50c0 ;@ 50c0 - .long Op50c8,Op50c8,Op50c8,Op50c8,Op50c8,Op50c8,Op50c8,Op50c8 ;@ 50c8 - .long Op50d0,Op50d0,Op50d0,Op50d0,Op50d0,Op50d0,Op50d0,Op50d0 ;@ 50d0 - .long Op50d8,Op50d8,Op50d8,Op50d8,Op50d8,Op50d8,Op50d8,Op50df ;@ 50d8 - .long Op50e0,Op50e0,Op50e0,Op50e0,Op50e0,Op50e0,Op50e0,Op50e7 ;@ 50e0 - .long Op50e8,Op50e8,Op50e8,Op50e8,Op50e8,Op50e8,Op50e8,Op50e8 ;@ 50e8 - .long Op50f0,Op50f0,Op50f0,Op50f0,Op50f0,Op50f0,Op50f0,Op50f0 ;@ 50f0 - .long Op50f8,Op50f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 50f8 - .long Op5100,Op5100,Op5100,Op5100,Op5100,Op5100,Op5100,Op5100 ;@ 5100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5108 - .long Op5110,Op5110,Op5110,Op5110,Op5110,Op5110,Op5110,Op5110 ;@ 5110 - .long Op5118,Op5118,Op5118,Op5118,Op5118,Op5118,Op5118,Op511f ;@ 5118 - .long Op5120,Op5120,Op5120,Op5120,Op5120,Op5120,Op5120,Op5127 ;@ 5120 - .long Op5128,Op5128,Op5128,Op5128,Op5128,Op5128,Op5128,Op5128 ;@ 5128 - .long Op5130,Op5130,Op5130,Op5130,Op5130,Op5130,Op5130,Op5130 ;@ 5130 - .long Op5138,Op5139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5138 - .long Op5140,Op5140,Op5140,Op5140,Op5140,Op5140,Op5140,Op5140 ;@ 5140 - .long Op5148,Op5148,Op5148,Op5148,Op5148,Op5148,Op5148,Op5148 ;@ 5148 - .long Op5150,Op5150,Op5150,Op5150,Op5150,Op5150,Op5150,Op5150 ;@ 5150 - .long Op5158,Op5158,Op5158,Op5158,Op5158,Op5158,Op5158,Op5158 ;@ 5158 - .long Op5160,Op5160,Op5160,Op5160,Op5160,Op5160,Op5160,Op5160 ;@ 5160 - .long Op5168,Op5168,Op5168,Op5168,Op5168,Op5168,Op5168,Op5168 ;@ 5168 - .long Op5170,Op5170,Op5170,Op5170,Op5170,Op5170,Op5170,Op5170 ;@ 5170 - .long Op5178,Op5179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5178 - .long Op5180,Op5180,Op5180,Op5180,Op5180,Op5180,Op5180,Op5180 ;@ 5180 - .long Op5188,Op5188,Op5188,Op5188,Op5188,Op5188,Op5188,Op5188 ;@ 5188 - .long Op5190,Op5190,Op5190,Op5190,Op5190,Op5190,Op5190,Op5190 ;@ 5190 - .long Op5198,Op5198,Op5198,Op5198,Op5198,Op5198,Op5198,Op5198 ;@ 5198 - .long Op51a0,Op51a0,Op51a0,Op51a0,Op51a0,Op51a0,Op51a0,Op51a0 ;@ 51a0 - .long Op51a8,Op51a8,Op51a8,Op51a8,Op51a8,Op51a8,Op51a8,Op51a8 ;@ 51a8 - .long Op51b0,Op51b0,Op51b0,Op51b0,Op51b0,Op51b0,Op51b0,Op51b0 ;@ 51b0 - .long Op51b8,Op51b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 51b8 - .long Op51c0,Op51c0,Op51c0,Op51c0,Op51c0,Op51c0,Op51c0,Op51c0 ;@ 51c0 - .long Op51c8,Op51c8,Op51c8,Op51c8,Op51c8,Op51c8,Op51c8,Op51c8 ;@ 51c8 - .long Op51d0,Op51d0,Op51d0,Op51d0,Op51d0,Op51d0,Op51d0,Op51d0 ;@ 51d0 - .long Op51d8,Op51d8,Op51d8,Op51d8,Op51d8,Op51d8,Op51d8,Op51df ;@ 51d8 - .long Op51e0,Op51e0,Op51e0,Op51e0,Op51e0,Op51e0,Op51e0,Op51e7 ;@ 51e0 - .long Op51e8,Op51e8,Op51e8,Op51e8,Op51e8,Op51e8,Op51e8,Op51e8 ;@ 51e8 - .long Op51f0,Op51f0,Op51f0,Op51f0,Op51f0,Op51f0,Op51f0,Op51f0 ;@ 51f0 - .long Op51f8,Op51f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 51f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5208 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5210 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5218 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5220 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5228 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5230 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5238 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5240 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5248 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5250 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5258 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5260 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5268 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5270 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5278 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5280 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5288 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5290 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5298 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 52a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 52a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 52b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 52b8 - .long Op52c0,Op52c0,Op52c0,Op52c0,Op52c0,Op52c0,Op52c0,Op52c0 ;@ 52c0 - .long Op52c8,Op52c8,Op52c8,Op52c8,Op52c8,Op52c8,Op52c8,Op52c8 ;@ 52c8 - .long Op52d0,Op52d0,Op52d0,Op52d0,Op52d0,Op52d0,Op52d0,Op52d0 ;@ 52d0 - .long Op52d8,Op52d8,Op52d8,Op52d8,Op52d8,Op52d8,Op52d8,Op52df ;@ 52d8 - .long Op52e0,Op52e0,Op52e0,Op52e0,Op52e0,Op52e0,Op52e0,Op52e7 ;@ 52e0 - .long Op52e8,Op52e8,Op52e8,Op52e8,Op52e8,Op52e8,Op52e8,Op52e8 ;@ 52e8 - .long Op52f0,Op52f0,Op52f0,Op52f0,Op52f0,Op52f0,Op52f0,Op52f0 ;@ 52f0 - .long Op52f8,Op52f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 52f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5308 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5310 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5318 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5320 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5328 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5330 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5338 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5340 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5348 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5350 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5358 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5360 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5368 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5370 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5378 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5380 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5388 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5390 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5398 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 53a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 53a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 53b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 53b8 - .long Op53c0,Op53c0,Op53c0,Op53c0,Op53c0,Op53c0,Op53c0,Op53c0 ;@ 53c0 - .long Op53c8,Op53c8,Op53c8,Op53c8,Op53c8,Op53c8,Op53c8,Op53c8 ;@ 53c8 - .long Op53d0,Op53d0,Op53d0,Op53d0,Op53d0,Op53d0,Op53d0,Op53d0 ;@ 53d0 - .long Op53d8,Op53d8,Op53d8,Op53d8,Op53d8,Op53d8,Op53d8,Op53df ;@ 53d8 - .long Op53e0,Op53e0,Op53e0,Op53e0,Op53e0,Op53e0,Op53e0,Op53e7 ;@ 53e0 - .long Op53e8,Op53e8,Op53e8,Op53e8,Op53e8,Op53e8,Op53e8,Op53e8 ;@ 53e8 - .long Op53f0,Op53f0,Op53f0,Op53f0,Op53f0,Op53f0,Op53f0,Op53f0 ;@ 53f0 - .long Op53f8,Op53f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 53f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5408 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5410 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5418 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5420 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5428 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5430 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5438 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5440 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5448 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5450 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5458 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5460 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5468 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5470 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5478 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5480 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5488 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5490 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5498 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 54a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 54a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 54b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 54b8 - .long Op54c0,Op54c0,Op54c0,Op54c0,Op54c0,Op54c0,Op54c0,Op54c0 ;@ 54c0 - .long Op54c8,Op54c8,Op54c8,Op54c8,Op54c8,Op54c8,Op54c8,Op54c8 ;@ 54c8 - .long Op54d0,Op54d0,Op54d0,Op54d0,Op54d0,Op54d0,Op54d0,Op54d0 ;@ 54d0 - .long Op54d8,Op54d8,Op54d8,Op54d8,Op54d8,Op54d8,Op54d8,Op54df ;@ 54d8 - .long Op54e0,Op54e0,Op54e0,Op54e0,Op54e0,Op54e0,Op54e0,Op54e7 ;@ 54e0 - .long Op54e8,Op54e8,Op54e8,Op54e8,Op54e8,Op54e8,Op54e8,Op54e8 ;@ 54e8 - .long Op54f0,Op54f0,Op54f0,Op54f0,Op54f0,Op54f0,Op54f0,Op54f0 ;@ 54f0 - .long Op54f8,Op54f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 54f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5508 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5510 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5518 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5520 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5528 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5530 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5538 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5540 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5548 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5550 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5558 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5560 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5568 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5570 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5578 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5580 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5588 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5590 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5598 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 55a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 55a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 55b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 55b8 - .long Op55c0,Op55c0,Op55c0,Op55c0,Op55c0,Op55c0,Op55c0,Op55c0 ;@ 55c0 - .long Op55c8,Op55c8,Op55c8,Op55c8,Op55c8,Op55c8,Op55c8,Op55c8 ;@ 55c8 - .long Op55d0,Op55d0,Op55d0,Op55d0,Op55d0,Op55d0,Op55d0,Op55d0 ;@ 55d0 - .long Op55d8,Op55d8,Op55d8,Op55d8,Op55d8,Op55d8,Op55d8,Op55df ;@ 55d8 - .long Op55e0,Op55e0,Op55e0,Op55e0,Op55e0,Op55e0,Op55e0,Op55e7 ;@ 55e0 - .long Op55e8,Op55e8,Op55e8,Op55e8,Op55e8,Op55e8,Op55e8,Op55e8 ;@ 55e8 - .long Op55f0,Op55f0,Op55f0,Op55f0,Op55f0,Op55f0,Op55f0,Op55f0 ;@ 55f0 - .long Op55f8,Op55f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 55f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5608 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5610 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5618 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5620 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5628 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5630 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5638 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5640 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5648 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5650 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5658 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5660 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5668 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5670 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5678 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5680 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5688 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5690 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5698 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 56a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 56a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 56b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 56b8 - .long Op56c0,Op56c0,Op56c0,Op56c0,Op56c0,Op56c0,Op56c0,Op56c0 ;@ 56c0 - .long Op56c8,Op56c8,Op56c8,Op56c8,Op56c8,Op56c8,Op56c8,Op56c8 ;@ 56c8 - .long Op56d0,Op56d0,Op56d0,Op56d0,Op56d0,Op56d0,Op56d0,Op56d0 ;@ 56d0 - .long Op56d8,Op56d8,Op56d8,Op56d8,Op56d8,Op56d8,Op56d8,Op56df ;@ 56d8 - .long Op56e0,Op56e0,Op56e0,Op56e0,Op56e0,Op56e0,Op56e0,Op56e7 ;@ 56e0 - .long Op56e8,Op56e8,Op56e8,Op56e8,Op56e8,Op56e8,Op56e8,Op56e8 ;@ 56e8 - .long Op56f0,Op56f0,Op56f0,Op56f0,Op56f0,Op56f0,Op56f0,Op56f0 ;@ 56f0 - .long Op56f8,Op56f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 56f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5708 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5710 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5718 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5720 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5728 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5730 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5738 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5740 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5748 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5750 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5758 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5760 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5768 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5770 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5778 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5780 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5788 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5790 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5798 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 57a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 57a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 57b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 57b8 - .long Op57c0,Op57c0,Op57c0,Op57c0,Op57c0,Op57c0,Op57c0,Op57c0 ;@ 57c0 - .long Op57c8,Op57c8,Op57c8,Op57c8,Op57c8,Op57c8,Op57c8,Op57c8 ;@ 57c8 - .long Op57d0,Op57d0,Op57d0,Op57d0,Op57d0,Op57d0,Op57d0,Op57d0 ;@ 57d0 - .long Op57d8,Op57d8,Op57d8,Op57d8,Op57d8,Op57d8,Op57d8,Op57df ;@ 57d8 - .long Op57e0,Op57e0,Op57e0,Op57e0,Op57e0,Op57e0,Op57e0,Op57e7 ;@ 57e0 - .long Op57e8,Op57e8,Op57e8,Op57e8,Op57e8,Op57e8,Op57e8,Op57e8 ;@ 57e8 - .long Op57f0,Op57f0,Op57f0,Op57f0,Op57f0,Op57f0,Op57f0,Op57f0 ;@ 57f0 - .long Op57f8,Op57f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 57f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5808 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5810 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5818 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5820 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5828 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5830 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5838 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5840 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5848 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5850 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5858 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5860 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5868 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5870 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5878 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5880 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5888 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5890 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5898 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 58a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 58a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 58b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 58b8 - .long Op58c0,Op58c0,Op58c0,Op58c0,Op58c0,Op58c0,Op58c0,Op58c0 ;@ 58c0 - .long Op58c8,Op58c8,Op58c8,Op58c8,Op58c8,Op58c8,Op58c8,Op58c8 ;@ 58c8 - .long Op58d0,Op58d0,Op58d0,Op58d0,Op58d0,Op58d0,Op58d0,Op58d0 ;@ 58d0 - .long Op58d8,Op58d8,Op58d8,Op58d8,Op58d8,Op58d8,Op58d8,Op58df ;@ 58d8 - .long Op58e0,Op58e0,Op58e0,Op58e0,Op58e0,Op58e0,Op58e0,Op58e7 ;@ 58e0 - .long Op58e8,Op58e8,Op58e8,Op58e8,Op58e8,Op58e8,Op58e8,Op58e8 ;@ 58e8 - .long Op58f0,Op58f0,Op58f0,Op58f0,Op58f0,Op58f0,Op58f0,Op58f0 ;@ 58f0 - .long Op58f8,Op58f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 58f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5908 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5910 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5918 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5920 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5928 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5930 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5938 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5940 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5948 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5950 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5958 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5960 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5968 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5970 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5978 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5980 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5988 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5990 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5998 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 59a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 59a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 59b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 59b8 - .long Op59c0,Op59c0,Op59c0,Op59c0,Op59c0,Op59c0,Op59c0,Op59c0 ;@ 59c0 - .long Op59c8,Op59c8,Op59c8,Op59c8,Op59c8,Op59c8,Op59c8,Op59c8 ;@ 59c8 - .long Op59d0,Op59d0,Op59d0,Op59d0,Op59d0,Op59d0,Op59d0,Op59d0 ;@ 59d0 - .long Op59d8,Op59d8,Op59d8,Op59d8,Op59d8,Op59d8,Op59d8,Op59df ;@ 59d8 - .long Op59e0,Op59e0,Op59e0,Op59e0,Op59e0,Op59e0,Op59e0,Op59e7 ;@ 59e0 - .long Op59e8,Op59e8,Op59e8,Op59e8,Op59e8,Op59e8,Op59e8,Op59e8 ;@ 59e8 - .long Op59f0,Op59f0,Op59f0,Op59f0,Op59f0,Op59f0,Op59f0,Op59f0 ;@ 59f0 - .long Op59f8,Op59f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 59f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5a08 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5a10 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5a18 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5a20 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5a28 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5a30 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5a38 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5a40 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5a48 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5a50 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5a58 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5a60 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5a68 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5a70 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5a78 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5a80 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5a88 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5a90 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5a98 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 5aa0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 5aa8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 5ab0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5ab8 - .long Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0 ;@ 5ac0 - .long Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8 ;@ 5ac8 - .long Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0 ;@ 5ad0 - .long Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5adf ;@ 5ad8 - .long Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae7 ;@ 5ae0 - .long Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8 ;@ 5ae8 - .long Op5af0,Op5af0,Op5af0,Op5af0,Op5af0,Op5af0,Op5af0,Op5af0 ;@ 5af0 - .long Op5af8,Op5af9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5af8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5b08 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5b10 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5b18 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5b20 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5b28 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5b30 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5b38 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5b40 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5b48 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5b50 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5b58 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5b60 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5b68 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5b70 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5b78 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5b80 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5b88 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5b90 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5b98 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 5ba0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 5ba8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 5bb0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5bb8 - .long Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0 ;@ 5bc0 - .long Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8 ;@ 5bc8 - .long Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0 ;@ 5bd0 - .long Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bdf ;@ 5bd8 - .long Op5be0,Op5be0,Op5be0,Op5be0,Op5be0,Op5be0,Op5be0,Op5be7 ;@ 5be0 - .long Op5be8,Op5be8,Op5be8,Op5be8,Op5be8,Op5be8,Op5be8,Op5be8 ;@ 5be8 - .long Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0 ;@ 5bf0 - .long Op5bf8,Op5bf9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5bf8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5c08 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5c10 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5c18 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5c20 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5c28 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5c30 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5c38 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5c40 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5c48 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5c50 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5c58 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5c60 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5c68 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5c70 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5c78 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5c80 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5c88 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5c90 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5c98 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 5ca0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 5ca8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 5cb0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5cb8 - .long Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0 ;@ 5cc0 - .long Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8 ;@ 5cc8 - .long Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0 ;@ 5cd0 - .long Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cdf ;@ 5cd8 - .long Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce7 ;@ 5ce0 - .long Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8 ;@ 5ce8 - .long Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0 ;@ 5cf0 - .long Op5cf8,Op5cf9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5cf8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5d08 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5d10 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5d18 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5d20 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5d28 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5d30 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5d38 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5d40 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5d48 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5d50 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5d58 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5d60 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5d68 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5d70 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5d78 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5d80 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5d88 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5d90 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5d98 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 5da0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 5da8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 5db0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5db8 - .long Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0 ;@ 5dc0 - .long Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8 ;@ 5dc8 - .long Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0 ;@ 5dd0 - .long Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5ddf ;@ 5dd8 - .long Op5de0,Op5de0,Op5de0,Op5de0,Op5de0,Op5de0,Op5de0,Op5de7 ;@ 5de0 - .long Op5de8,Op5de8,Op5de8,Op5de8,Op5de8,Op5de8,Op5de8,Op5de8 ;@ 5de8 - .long Op5df0,Op5df0,Op5df0,Op5df0,Op5df0,Op5df0,Op5df0,Op5df0 ;@ 5df0 - .long Op5df8,Op5df9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5df8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5e08 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5e10 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5e18 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5e20 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5e28 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5e30 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5e38 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5e40 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5e48 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5e50 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5e58 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5e60 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5e68 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5e70 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5e78 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5e80 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5e88 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5e90 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5e98 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 5ea0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 5ea8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 5eb0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5eb8 - .long Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0 ;@ 5ec0 - .long Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8 ;@ 5ec8 - .long Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0 ;@ 5ed0 - .long Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5edf ;@ 5ed8 - .long Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee7 ;@ 5ee0 - .long Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8 ;@ 5ee8 - .long Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0 ;@ 5ef0 - .long Op5ef8,Op5ef9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5ef8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5f08 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5f10 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5f18 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5f20 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5f28 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5f30 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5f38 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5f40 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5f48 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5f50 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5f58 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5f60 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5f68 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5f70 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5f78 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5f80 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5f88 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5f90 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5f98 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 5fa0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 5fa8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 5fb0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5fb8 - .long Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0 ;@ 5fc0 - .long Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8 ;@ 5fc8 - .long Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0 ;@ 5fd0 - .long Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fdf ;@ 5fd8 - .long Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe7 ;@ 5fe0 - .long Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8 ;@ 5fe8 - .long Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0 ;@ 5ff0 - .long Op5ff8,Op5ff9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5ff8 - .long Op6000,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6000 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6008 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6010 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6018 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6020 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6028 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6030 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6038 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6040 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6048 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6050 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6058 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6060 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6068 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6070 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6078 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6080 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6088 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6090 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6098 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60a0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60a8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60b0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60b8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60c0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60c8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60d0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60d8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60e0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60e8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60f0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60f8 - .long Op6100,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6100 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6108 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6110 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6118 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6120 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6128 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6130 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6138 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6140 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6148 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6150 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6158 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6160 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6168 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6170 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6178 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6180 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6188 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6190 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6198 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61a0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61a8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61b0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61b8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61c0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61c8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61d0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61d8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61e0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61e8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61f0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61f8 - .long Op6200,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6200 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6208 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6210 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6218 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6220 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6228 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6230 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6238 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6240 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6248 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6250 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6258 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6260 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6268 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6270 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6278 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6280 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6288 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6290 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6298 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62a0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62a8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62b0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62b8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62c0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62c8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62d0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62d8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62e0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62e8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62f0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62f8 - .long Op6300,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6300 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6308 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6310 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6318 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6320 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6328 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6330 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6338 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6340 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6348 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6350 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6358 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6360 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6368 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6370 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6378 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6380 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6388 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6390 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6398 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63a0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63a8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63b0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63b8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63c0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63c8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63d0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63d8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63e0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63e8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63f0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63f8 - .long Op6400,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6400 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6408 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6410 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6418 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6420 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6428 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6430 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6438 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6440 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6448 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6450 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6458 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6460 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6468 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6470 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6478 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6480 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6488 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6490 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6498 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64a0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64a8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64b0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64b8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64c0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64c8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64d0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64d8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64e0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64e8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64f0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64f8 - .long Op6500,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6500 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6508 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6510 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6518 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6520 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6528 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6530 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6538 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6540 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6548 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6550 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6558 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6560 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6568 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6570 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6578 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6580 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6588 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6590 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6598 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65a0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65a8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65b0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65b8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65c0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65c8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65d0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65d8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65e0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65e8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65f0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65f8 - .long Op6600,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6600 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6608 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6610 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6618 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6620 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6628 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6630 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6638 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6640 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6648 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6650 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6658 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6660 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6668 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6670 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6678 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6680 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6688 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6690 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6698 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66a0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66a8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66b0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66b8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66c0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66c8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66d0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66d8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66e0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66e8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66f0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66f8 - .long Op6700,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6700 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6708 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6710 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6718 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6720 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6728 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6730 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6738 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6740 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6748 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6750 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6758 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6760 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6768 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6770 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6778 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6780 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6788 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6790 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6798 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67a0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67a8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67b0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67b8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67c0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67c8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67d0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67d8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67e0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67e8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67f0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67f8 - .long Op6800,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6800 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6808 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6810 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6818 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6820 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6828 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6830 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6838 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6840 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6848 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6850 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6858 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6860 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6868 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6870 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6878 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6880 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6888 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6890 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6898 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68a0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68a8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68b0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68b8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68c0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68c8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68d0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68d8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68e0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68e8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68f0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68f8 - .long Op6900,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6900 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6908 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6910 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6918 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6920 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6928 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6930 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6938 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6940 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6948 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6950 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6958 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6960 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6968 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6970 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6978 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6980 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6988 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6990 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6998 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69a0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69a8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69b0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69b8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69c0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69c8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69d0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69d8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69e0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69e8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69f0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69f8 - .long Op6a00,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a00 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a08 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a10 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a18 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a20 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a28 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a30 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a38 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a40 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a48 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a50 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a58 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a60 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a68 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a70 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a78 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a80 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a88 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a90 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a98 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6aa0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6aa8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ab0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ab8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ac0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ac8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ad0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ad8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ae0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ae8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6af0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6af8 - .long Op6b00,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b00 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b08 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b10 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b18 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b20 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b28 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b30 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b38 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b40 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b48 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b50 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b58 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b60 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b68 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b70 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b78 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b80 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b88 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b90 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b98 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6ba0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6ba8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bb0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bb8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bc0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bc8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bd0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bd8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6be0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6be8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bf0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bf8 - .long Op6c00,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c00 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c08 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c10 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c18 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c20 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c28 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c30 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c38 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c40 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c48 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c50 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c58 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c60 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c68 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c70 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c78 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c80 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c88 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c90 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c98 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ca0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ca8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cb0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cb8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cc0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cc8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cd0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cd8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ce0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ce8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cf0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cf8 - .long Op6d00,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d00 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d08 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d10 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d18 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d20 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d28 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d30 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d38 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d40 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d48 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d50 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d58 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d60 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d68 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d70 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d78 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d80 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d88 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d90 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d98 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6da0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6da8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6db0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6db8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dc0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dc8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dd0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dd8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6de0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6de8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6df0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6df8 - .long Op6e00,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e00 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e08 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e10 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e18 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e20 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e28 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e30 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e38 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e40 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e48 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e50 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e58 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e60 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e68 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e70 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e78 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e80 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e88 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e90 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e98 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ea0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ea8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6eb0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6eb8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ec0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ec8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ed0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ed8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ee0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ee8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ef0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ef8 - .long Op6f00,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f00 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f08 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f10 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f18 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f20 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f28 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f30 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f38 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f40 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f48 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f50 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f58 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f60 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f68 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f70 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f78 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f80 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f88 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f90 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f98 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fa0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fa8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fb0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fb8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fc0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fc8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fd0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fd8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fe0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fe8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6ff0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6ff8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7000 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7008 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7010 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7018 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7020 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7028 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7030 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7038 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7040 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7048 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7050 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7058 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7060 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7068 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7070 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7078 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7080 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7088 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7090 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7098 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7108 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7110 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7118 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7120 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7128 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7130 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7138 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7148 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7150 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7158 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7160 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7168 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7170 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7178 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7188 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7190 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7198 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7200 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7208 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7210 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7218 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7220 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7228 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7230 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7238 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7240 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7248 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7250 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7258 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7260 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7268 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7270 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7278 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7280 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7288 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7290 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7298 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7308 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7310 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7318 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7320 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7328 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7330 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7338 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7348 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7350 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7358 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7360 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7368 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7370 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7378 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7388 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7390 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7398 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7400 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7408 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7410 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7418 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7420 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7428 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7430 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7438 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7440 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7448 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7450 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7458 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7460 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7468 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7470 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7478 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7480 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7488 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7490 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7498 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7508 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7510 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7518 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7520 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7528 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7530 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7538 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7548 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7550 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7558 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7560 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7568 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7570 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7578 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7588 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7590 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7598 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7600 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7608 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7610 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7618 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7620 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7628 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7630 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7638 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7640 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7648 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7650 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7658 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7660 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7668 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7670 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7678 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7680 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7688 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7690 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7698 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7708 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7710 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7718 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7720 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7728 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7730 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7738 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7748 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7750 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7758 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7760 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7768 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7770 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7778 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7788 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7790 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7798 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7800 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7808 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7810 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7818 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7820 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7828 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7830 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7838 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7840 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7848 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7850 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7858 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7860 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7868 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7870 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7878 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7880 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7888 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7890 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7898 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7908 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7910 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7918 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7920 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7928 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7930 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7938 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7948 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7950 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7958 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7960 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7968 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7970 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7978 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7988 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7990 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7998 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a00 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a08 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a10 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a18 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a20 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a28 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a30 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a38 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a40 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a48 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a50 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a58 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a60 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a68 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a70 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a78 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a80 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a88 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a90 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a98 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7aa0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7aa8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ab0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ab8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ac0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ac8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ad0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ad8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ae0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ae8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7af0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7af8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ba0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ba8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bb0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bf8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c00 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c08 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c10 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c18 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c20 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c28 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c30 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c38 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c40 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c48 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c50 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c58 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c60 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c68 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c70 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c78 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c80 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c88 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c90 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c98 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ca0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ca8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cb0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cb8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cc0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cc8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cd0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cd8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ce0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ce8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cf0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cf8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7da0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7da8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7db0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7df8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e00 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e08 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e10 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e18 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e20 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e28 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e30 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e38 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e40 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e48 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e50 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e58 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e60 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e68 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e70 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e78 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e80 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e88 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e90 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e98 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ea0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ea8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7eb0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7eb8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ec0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ec8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ed0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ed8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ee0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ee8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ef0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ef8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fa0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fa8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fb0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ff8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8008 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8010 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8018 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8020 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8028 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8030 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8038 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8048 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8050 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8058 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8060 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8068 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8070 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8078 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8088 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8090 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8098 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 80a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 80a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 80b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 80b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 80c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 80c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 80d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 80d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 80e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 80e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 80f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 80f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8100 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8108 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8110 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8118 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8120 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8128 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8130 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8138 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8148 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8150 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8158 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8160 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8168 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8170 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8178 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8188 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8190 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8198 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 81a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 81a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 81b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 81b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 81c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 81c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 81d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 81d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 81e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 81e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 81f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 81f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8208 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8210 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8218 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8220 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8228 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8230 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8238 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8248 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8250 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8258 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8260 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8268 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8270 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8278 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8288 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8290 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8298 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 82a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 82a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 82b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 82b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 82c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 82c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 82d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 82d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 82e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 82e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 82f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 82f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8300 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8308 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8310 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8318 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8320 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8328 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8330 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8338 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8348 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8350 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8358 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8360 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8368 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8370 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8378 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8388 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8390 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8398 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 83a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 83a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 83b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 83b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 83c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 83c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 83d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 83d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 83e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 83e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 83f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 83f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8408 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8410 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8418 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8420 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8428 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8430 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8438 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8448 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8450 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8458 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8460 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8468 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8470 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8478 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8488 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8490 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8498 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 84a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 84a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 84b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 84b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 84c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 84c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 84d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 84d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 84e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 84e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 84f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 84f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8500 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8508 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8510 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8518 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8520 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8528 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8530 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8538 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8548 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8550 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8558 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8560 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8568 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8570 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8578 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8588 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8590 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8598 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 85a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 85a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 85b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 85b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 85c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 85c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 85d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 85d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 85e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 85e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 85f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 85f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8608 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8610 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8618 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8620 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8628 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8630 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8638 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8648 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8650 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8658 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8660 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8668 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8670 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8678 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8688 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8690 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8698 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 86a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 86a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 86b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 86b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 86c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 86c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 86d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 86d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 86e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 86e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 86f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 86f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8700 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8708 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8710 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8718 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8720 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8728 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8730 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8738 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8748 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8750 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8758 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8760 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8768 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8770 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8778 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8788 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8790 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8798 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 87a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 87a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 87b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 87b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 87c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 87c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 87d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 87d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 87e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 87e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 87f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 87f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8808 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8810 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8818 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8820 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8828 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8830 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8838 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8848 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8850 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8858 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8860 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8868 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8870 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8878 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8888 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8890 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8898 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 88a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 88a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 88b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 88b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 88c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 88c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 88d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 88d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 88e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 88e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 88f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 88f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8900 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8908 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8910 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8918 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8920 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8928 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8930 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8938 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8948 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8950 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8958 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8960 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8968 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8970 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8978 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8988 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8990 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8998 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 89a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 89a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 89b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 89b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 89c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 89c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 89d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 89d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 89e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 89e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 89f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 89f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8a08 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8a10 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8a18 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8a20 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8a28 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8a30 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8a38 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8a48 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8a50 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8a58 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8a60 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8a68 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8a70 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8a78 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8a88 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8a90 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8a98 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 8aa0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 8aa8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 8ab0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 8ab8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 8ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8ac8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 8ad0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 8ad8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 8ae0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 8ae8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 8af0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 8af8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8b00 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8b08 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8b10 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8b18 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8b20 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8b28 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8b30 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b48 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8b50 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8b58 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8b60 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8b68 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8b70 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b88 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8b90 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8b98 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 8ba0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 8ba8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 8bb0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8bb8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 8bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8bc8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 8bd0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 8bd8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 8be0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 8be8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 8bf0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 8bf8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8c08 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8c10 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8c18 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8c20 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8c28 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8c30 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8c38 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8c48 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8c50 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8c58 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8c60 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8c68 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8c70 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8c78 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8c88 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8c90 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8c98 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 8ca0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 8ca8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 8cb0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 8cb8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 8cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8cc8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 8cd0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 8cd8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 8ce0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 8ce8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 8cf0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 8cf8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8d00 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8d08 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8d10 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8d18 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8d20 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8d28 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8d30 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d48 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8d50 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8d58 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8d60 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8d68 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8d70 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d88 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8d90 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8d98 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 8da0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 8da8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 8db0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8db8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 8dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8dc8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 8dd0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 8dd8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 8de0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 8de8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 8df0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 8df8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8e08 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8e10 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8e18 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8e20 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8e28 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8e30 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8e38 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8e40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8e48 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8e50 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8e58 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8e60 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8e68 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8e70 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8e78 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8e88 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8e90 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8e98 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 8ea0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 8ea8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 8eb0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 8eb8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 8ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8ec8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 8ed0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 8ed8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 8ee0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 8ee8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 8ef0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 8ef8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8f00 - .long Op8f08,Op8f08,Op8f08,Op8f08,Op8f08,Op8f08,Op8f08,Op8f0f ;@ 8f08 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8f10 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8f18 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8f20 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8f28 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8f30 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f48 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8f50 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8f58 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8f60 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8f68 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8f70 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f88 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8f90 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8f98 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 8fa0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 8fa8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 8fb0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8fb8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 8fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8fc8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 8fd0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 8fd8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 8fe0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 8fe8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 8ff0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 8ff8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9008 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9010 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9018 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9020 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9028 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9030 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9038 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9040 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9048 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9050 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9058 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9060 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9068 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9070 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9078 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9080 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9088 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9090 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9098 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 90a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 90a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 90b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 90b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 90c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 90c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 90d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 90d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 90e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 90e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 90f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 90f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9100 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9108 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9110 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9118 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9120 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9128 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9130 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9138 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9140 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9148 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9150 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9158 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9160 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9168 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9170 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9178 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9180 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9188 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9190 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9198 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 91a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 91a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 91b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 91b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 91c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 91c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 91d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 91d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 91e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 91e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 91f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 91f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9208 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9210 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9218 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9220 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9228 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9230 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9238 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9240 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9248 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9250 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9258 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9260 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9268 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9270 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9278 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9280 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9288 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9290 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9298 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 92a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 92a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 92b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 92b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 92c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 92c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 92d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 92d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 92e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 92e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 92f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 92f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9300 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9308 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9310 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9318 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9320 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9328 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9330 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9338 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9340 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9348 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9350 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9358 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9360 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9368 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9370 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9378 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9380 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9388 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9390 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9398 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 93a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 93a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 93b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 93b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 93c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 93c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 93d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 93d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 93e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 93e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 93f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 93f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9408 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9410 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9418 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9420 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9428 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9430 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9438 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9440 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9448 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9450 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9458 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9460 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9468 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9470 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9478 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9480 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9488 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9490 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9498 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 94a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 94a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 94b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 94b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 94c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 94c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 94d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 94d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 94e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 94e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 94f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 94f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9500 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9508 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9510 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9518 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9520 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9528 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9530 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9538 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9540 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9548 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9550 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9558 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9560 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9568 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9570 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9578 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9580 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9588 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9590 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9598 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 95a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 95a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 95b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 95b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 95c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 95c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 95d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 95d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 95e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 95e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 95f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 95f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9608 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9610 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9618 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9620 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9628 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9630 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9638 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9640 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9648 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9650 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9658 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9660 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9668 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9670 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9678 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9680 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9688 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9690 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9698 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 96a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 96a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 96b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 96b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 96c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 96c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 96d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 96d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 96e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 96e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 96f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 96f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9700 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9708 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9710 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9718 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9720 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9728 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9730 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9738 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9740 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9748 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9750 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9758 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9760 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9768 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9770 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9778 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9780 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9788 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9790 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9798 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 97a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 97a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 97b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 97b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 97c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 97c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 97d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 97d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 97e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 97e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 97f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 97f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9808 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9810 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9818 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9820 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9828 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9830 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9838 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9840 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9848 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9850 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9858 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9860 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9868 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9870 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9878 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9880 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9888 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9890 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9898 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 98a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 98a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 98b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 98b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 98c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 98c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 98d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 98d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 98e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 98e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 98f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 98f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9900 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9908 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9910 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9918 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9920 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9928 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9930 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9938 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9940 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9948 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9950 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9958 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9960 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9968 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9970 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9978 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9980 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9988 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9990 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9998 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 99a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 99a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 99b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 99b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 99c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 99c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 99d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 99d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 99e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 99e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 99f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 99f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9a08 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9a10 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9a18 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9a20 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9a28 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9a30 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9a38 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9a40 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9a48 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9a50 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9a58 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9a60 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9a68 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9a70 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9a78 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9a80 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9a88 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9a90 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9a98 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 9aa0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 9aa8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 9ab0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 9ab8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ac0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ac8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 9ad0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 9ad8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 9ae0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 9ae8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 9af0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 9af8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9b00 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9b08 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9b10 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9b18 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9b20 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9b28 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9b30 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9b38 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9b40 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9b48 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9b50 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9b58 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9b60 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9b68 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9b70 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9b78 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9b80 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9b88 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9b90 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9b98 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 9ba0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 9ba8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 9bb0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9bb8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9bc0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9bc8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 9bd0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 9bd8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 9be0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 9be8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 9bf0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 9bf8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9c08 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9c10 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9c18 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9c20 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9c28 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9c30 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9c38 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9c40 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9c48 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9c50 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9c58 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9c60 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9c68 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9c70 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9c78 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9c80 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9c88 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9c90 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9c98 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 9ca0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 9ca8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 9cb0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 9cb8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9cc0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9cc8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 9cd0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 9cd8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 9ce0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 9ce8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 9cf0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 9cf8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9d00 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9d08 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9d10 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9d18 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9d20 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9d28 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9d30 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9d38 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9d40 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9d48 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9d50 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9d58 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9d60 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9d68 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9d70 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9d78 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9d80 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9d88 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9d90 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9d98 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 9da0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 9da8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 9db0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9db8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9dc0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9dc8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 9dd0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 9dd8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 9de0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 9de8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 9df0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 9df8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9e08 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9e10 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9e18 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9e20 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9e28 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9e30 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9e38 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9e40 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9e48 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9e50 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9e58 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9e60 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9e68 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9e70 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9e78 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9e80 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9e88 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9e90 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9e98 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 9ea0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 9ea8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 9eb0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 9eb8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ec0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ec8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 9ed0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 9ed8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 9ee0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 9ee8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 9ef0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 9ef8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9f00 - .long Op9f08,Op9f08,Op9f08,Op9f08,Op9f08,Op9f08,Op9f08,Op9f0f ;@ 9f08 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9f10 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9f18 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9f20 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9f28 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9f30 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9f38 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9f40 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9f48 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9f50 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9f58 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9f60 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9f68 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9f70 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9f78 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9f80 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9f88 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9f90 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9f98 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 9fa0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 9fa8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 9fb0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9fb8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9fc0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9fc8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 9fd0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 9fd8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 9fe0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 9fe8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 9ff0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 9ff8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a000 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a008 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a010 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a018 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a020 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a028 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a030 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a038 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a040 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a048 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a050 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a058 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a060 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a068 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a070 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a078 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a080 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a088 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a090 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a098 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a100 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a108 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a110 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a118 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a120 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a128 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a130 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a138 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a140 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a148 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a150 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a158 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a160 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a168 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a170 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a178 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a180 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a188 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a190 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a198 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a200 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a208 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a210 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a218 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a220 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a228 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a230 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a238 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a240 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a248 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a250 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a258 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a260 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a268 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a270 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a278 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a280 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a288 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a290 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a298 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a300 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a308 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a310 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a318 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a320 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a328 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a330 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a338 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a340 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a348 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a350 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a358 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a360 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a368 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a370 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a378 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a380 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a388 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a390 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a398 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a400 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a408 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a410 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a418 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a420 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a428 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a430 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a438 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a440 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a448 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a450 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a458 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a460 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a468 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a470 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a478 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a480 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a488 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a490 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a498 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a500 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a508 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a510 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a518 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a520 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a528 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a530 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a538 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a540 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a548 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a550 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a558 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a560 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a568 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a570 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a578 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a580 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a588 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a590 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a598 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a600 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a608 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a610 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a618 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a620 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a628 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a630 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a638 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a640 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a648 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a650 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a658 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a660 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a668 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a670 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a678 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a680 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a688 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a690 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a698 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a700 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a708 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a710 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a718 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a720 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a728 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a730 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a738 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a740 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a748 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a750 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a758 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a760 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a768 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a770 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a778 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a780 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a788 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a790 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a798 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a800 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a808 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a810 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a818 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a820 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a828 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a830 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a838 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a840 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a848 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a850 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a858 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a860 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a868 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a870 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a878 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a880 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a888 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a890 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a898 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a900 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a908 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a910 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a918 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a920 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a928 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a930 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a938 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a940 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a948 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a950 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a958 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a960 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a968 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a970 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a978 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a980 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a988 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a990 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a998 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaa0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaa8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aab0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aab8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aac0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aac8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aad0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aad8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aae0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aae8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aba0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aba8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abd0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abd8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abe0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abe8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aca0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aca8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acd0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acd8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ace0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ace8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ada0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ada8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ add0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ add8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ade0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ade8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aea0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aea8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aeb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aeb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aec0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aec8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aed0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aed8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aee0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aee8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aef0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aef8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afa0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afa8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afd0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afd8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afe0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afe8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aff0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aff8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b008 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b010 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b018 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b020 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b028 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b030 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b038 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b040 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b048 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b050 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b058 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b060 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b068 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b070 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b078 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b080 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b088 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b090 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b098 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b0a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b0a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b0b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b0b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b0c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b0c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b0d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b0d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b0e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b0e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b0f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b0f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b100 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b108 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b110 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b118 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b120 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b128 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b130 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b138 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b140 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b148 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b150 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b158 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b160 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b168 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b170 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b178 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b180 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b188 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b190 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b198 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b1a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b1a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b1b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b1b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b1c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b1c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b1d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b1d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b1e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b1e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b1f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b1f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b208 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b210 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b218 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b220 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b228 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b230 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b238 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b240 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b248 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b250 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b258 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b260 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b268 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b270 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b278 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b280 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b288 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b290 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b298 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b2a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b2a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b2b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b2b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b2c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b2c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b2d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b2d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b2e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b2e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b2f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b2f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b300 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b308 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b310 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b318 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b320 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b328 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b330 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b338 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b340 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b348 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b350 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b358 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b360 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b368 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b370 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b378 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b380 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b388 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b390 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b398 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b3a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b3a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b3b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b3b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b3c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b3c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b3d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b3d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b3e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b3e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b3f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b3f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b408 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b410 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b418 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b420 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b428 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b430 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b438 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b440 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b448 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b450 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b458 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b460 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b468 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b470 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b478 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b480 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b488 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b490 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b498 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b4a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b4a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b4b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b4b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b4c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b4c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b4d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b4d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b4e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b4e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b4f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b4f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b500 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b508 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b510 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b518 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b520 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b528 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b530 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b538 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b540 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b548 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b550 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b558 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b560 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b568 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b570 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b578 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b580 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b588 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b590 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b598 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b5a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b5a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b5b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b5b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b5c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b5c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b5d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b5d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b5e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b5e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b5f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b5f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b608 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b610 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b618 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b620 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b628 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b630 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b638 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b640 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b648 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b650 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b658 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b660 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b668 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b670 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b678 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b680 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b688 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b690 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b698 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b6a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b6a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b6b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b6b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b6c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b6c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b6d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b6d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b6e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b6e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b6f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b6f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b700 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b708 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b710 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b718 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b720 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b728 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b730 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b738 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b740 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b748 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b750 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b758 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b760 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b768 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b770 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b778 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b780 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b788 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b790 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b798 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b7a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b7a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b7b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b7b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b7c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b7c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b7d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b7d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b7e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b7e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b7f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b7f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b808 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b810 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b818 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b820 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b828 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b830 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b838 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b840 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b848 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b850 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b858 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b860 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b868 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b870 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b878 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b880 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b888 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b890 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b898 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b8a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b8a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b8b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b8b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b8c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b8c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b8d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b8d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b8e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b8e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b8f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b8f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b900 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b908 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b910 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b918 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b920 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b928 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b930 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b938 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b940 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b948 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b950 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b958 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b960 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b968 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b970 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b978 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b980 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b988 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b990 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b998 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b9a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b9a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b9b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b9b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b9c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b9c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b9d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b9d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b9e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b9e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b9f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b9f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ ba00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ba08 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ ba10 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ ba18 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ ba20 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ ba28 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ ba30 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ ba38 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ ba40 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ ba48 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ ba50 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ ba58 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ ba60 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ ba68 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ ba70 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ ba78 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ ba80 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ ba88 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ ba90 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ ba98 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ baa0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ baa8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ bab0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ bab8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bac0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bac8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ bad0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ bad8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ bae0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ bae8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ baf0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ baf8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ bb00 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ bb08 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ bb10 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ bb18 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ bb20 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ bb28 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ bb30 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bb38 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ bb40 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ bb48 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ bb50 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ bb58 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ bb60 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ bb68 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ bb70 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bb78 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ bb80 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ bb88 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ bb90 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ bb98 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ bba0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ bba8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ bbb0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bbb8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bbc0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bbc8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ bbd0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ bbd8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ bbe0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ bbe8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ bbf0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ bbf8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ bc00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bc08 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ bc10 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ bc18 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ bc20 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ bc28 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ bc30 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ bc38 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ bc40 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ bc48 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ bc50 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ bc58 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ bc60 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ bc68 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ bc70 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ bc78 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ bc80 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ bc88 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ bc90 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ bc98 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ bca0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ bca8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ bcb0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ bcb8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bcc0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bcc8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ bcd0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ bcd8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ bce0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ bce8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ bcf0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ bcf8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ bd00 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ bd08 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ bd10 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ bd18 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ bd20 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ bd28 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ bd30 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bd38 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ bd40 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ bd48 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ bd50 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ bd58 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ bd60 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ bd68 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ bd70 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bd78 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ bd80 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ bd88 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ bd90 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ bd98 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ bda0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ bda8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ bdb0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bdb8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bdc0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bdc8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ bdd0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ bdd8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ bde0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ bde8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ bdf0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ bdf8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ be00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ be08 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ be10 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ be18 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ be20 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ be28 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ be30 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ be38 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ be40 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ be48 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ be50 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ be58 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ be60 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ be68 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ be70 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ be78 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ be80 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ be88 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ be90 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ be98 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ bea0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ bea8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ beb0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ beb8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bec0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bec8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ bed0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ bed8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ bee0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ bee8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ bef0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ bef8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ bf00 - .long Opbf08,Opbf08,Opbf08,Opbf08,Opbf08,Opbf08,Opbf08,Opbf0f ;@ bf08 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ bf10 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ bf18 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ bf20 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ bf28 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ bf30 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bf38 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ bf40 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ bf48 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ bf50 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ bf58 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ bf60 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ bf68 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ bf70 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bf78 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ bf80 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ bf88 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ bf90 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ bf98 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ bfa0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ bfa8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ bfb0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bfb8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bfc0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bfc8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ bfd0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ bfd8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ bfe0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ bfe8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ bff0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ bff8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c008 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c010 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c018 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c020 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c028 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c030 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c038 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c048 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c050 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c058 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c060 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c068 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c070 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c078 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c088 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c090 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c098 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c0a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c0a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c0b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c0b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c0c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c0c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c0d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c0d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c0e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c0e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c0f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c0f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c100 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c108 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c110 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c118 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c120 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c128 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c130 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c138 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c140 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c148 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c150 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c158 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c160 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c168 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c170 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c178 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c180 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c188 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c190 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c198 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c1a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c1a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c1b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c1b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c1c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c1c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c1d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c1d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c1e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c1e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c1f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c1f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c208 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c210 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c218 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c220 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c228 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c230 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c238 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c248 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c250 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c258 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c260 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c268 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c270 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c278 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c288 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c290 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c298 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c2a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c2a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c2b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c2b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c2c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c2c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c2d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c2d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c2e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c2e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c2f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c2f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c300 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c308 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c310 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c318 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c320 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c328 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c330 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c338 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c340 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c348 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c350 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c358 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c360 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c368 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c370 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c378 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c380 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c388 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c390 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c398 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c3a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c3a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c3b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c3b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c3c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c3c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c3d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c3d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c3e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c3e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c3f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c3f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c408 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c410 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c418 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c420 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c428 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c430 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c438 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c448 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c450 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c458 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c460 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c468 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c470 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c478 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c488 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c490 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c498 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c4a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c4a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c4b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c4b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c4c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c4c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c4d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c4d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c4e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c4e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c4f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c4f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c500 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c508 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c510 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c518 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c520 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c528 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c530 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c538 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c540 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c548 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c550 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c558 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c560 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c568 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c570 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c578 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c580 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c588 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c590 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c598 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c5a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c5a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c5b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c5b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c5c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c5c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c5d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c5d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c5e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c5e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c5f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c5f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c608 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c610 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c618 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c620 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c628 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c630 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c638 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c648 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c650 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c658 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c660 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c668 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c670 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c678 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c688 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c690 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c698 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c6a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c6a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c6b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c6b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c6c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c6c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c6d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c6d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c6e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c6e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c6f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c6f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c700 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c708 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c710 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c718 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c720 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c728 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c730 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c738 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c740 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c748 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c750 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c758 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c760 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c768 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c770 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c778 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c780 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c788 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c790 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c798 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c7a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c7a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c7b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c7b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c7c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c7c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c7d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c7d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c7e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c7e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c7f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c7f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c808 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c810 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c818 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c820 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c828 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c830 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c838 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c848 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c850 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c858 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c860 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c868 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c870 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c878 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c888 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c890 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c898 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c8a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c8a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c8b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c8b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c8c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c8c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c8d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c8d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c8e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c8e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c8f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c8f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c900 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c908 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c910 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c918 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c920 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c928 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c930 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c938 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c940 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c948 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c950 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c958 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c960 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c968 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c970 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c978 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c980 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c988 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c990 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c998 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c9a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c9a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c9b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c9b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c9c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c9c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c9d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c9d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c9e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c9e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c9f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c9f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ ca00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ca08 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ ca10 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ ca18 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ ca20 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ ca28 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ ca30 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ ca38 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ ca40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ca48 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ ca50 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ ca58 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ ca60 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ ca68 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ ca70 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ ca78 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ ca80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ca88 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ ca90 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ ca98 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ caa0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ caa8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ cab0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ cab8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ cac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cac8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ cad0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ cad8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ cae0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ cae8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ caf0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ caf8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ cb00 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ cb08 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ cb10 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ cb18 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ cb20 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ cb28 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ cb30 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cb38 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ cb40 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ cb48 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ cb50 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ cb58 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ cb60 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ cb68 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ cb70 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cb78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cb80 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ cb88 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ cb90 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ cb98 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ cba0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ cba8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ cbb0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cbb8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ cbc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cbc8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ cbd0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ cbd8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ cbe0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ cbe8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ cbf0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ cbf8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ cc00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cc08 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ cc10 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ cc18 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ cc20 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ cc28 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ cc30 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ cc38 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ cc40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cc48 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ cc50 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ cc58 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ cc60 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ cc68 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ cc70 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ cc78 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ cc80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cc88 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ cc90 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ cc98 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ cca0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ cca8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ ccb0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ ccb8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ ccc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ccc8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ ccd0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ ccd8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ cce0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ cce8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ ccf0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ ccf8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ cd00 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ cd08 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ cd10 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ cd18 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ cd20 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ cd28 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ cd30 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cd38 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ cd40 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ cd48 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ cd50 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ cd58 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ cd60 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ cd68 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ cd70 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cd78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cd80 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ cd88 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ cd90 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ cd98 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ cda0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ cda8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ cdb0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cdb8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ cdc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cdc8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ cdd0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ cdd8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ cde0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ cde8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ cdf0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ cdf8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ ce00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ce08 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ ce10 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ ce18 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ ce20 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ ce28 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ ce30 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ ce38 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ ce40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ce48 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ ce50 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ ce58 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ ce60 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ ce68 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ ce70 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ ce78 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ ce80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ce88 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ ce90 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ ce98 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ cea0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ cea8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ ceb0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ ceb8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ cec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cec8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ ced0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ ced8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ cee0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ cee8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ cef0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ cef8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ cf00 - .long Opcf08,Opcf08,Opcf08,Opcf08,Opcf08,Opcf08,Opcf08,Opcf0f ;@ cf08 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ cf10 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ cf18 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ cf20 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ cf28 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ cf30 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cf38 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ cf40 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ cf48 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ cf50 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ cf58 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ cf60 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ cf68 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ cf70 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cf78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cf80 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ cf88 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ cf90 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ cf98 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ cfa0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ cfa8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ cfb0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cfb8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ cfc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cfc8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ cfd0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ cfd8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ cfe0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ cfe8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ cff0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ cff8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d008 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d010 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d018 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d020 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d028 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d030 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d038 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d040 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d048 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d050 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d058 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d060 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d068 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d070 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d078 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d080 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d088 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d090 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d098 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d0a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d0a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d0b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d0b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d0c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d0c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d0d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d0d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d0e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d0e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d0f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d0f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d100 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d108 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d110 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d118 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d120 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d128 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d130 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d138 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d140 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d148 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d150 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d158 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d160 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d168 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d170 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d178 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d180 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d188 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d190 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d198 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d1a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d1a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d1b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d1b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d1c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d1c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d1d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d1d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d1e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d1e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d1f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d1f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d208 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d210 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d218 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d220 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d228 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d230 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d238 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d240 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d248 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d250 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d258 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d260 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d268 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d270 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d278 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d280 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d288 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d290 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d298 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d2a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d2a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d2b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d2b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d2c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d2c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d2d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d2d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d2e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d2e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d2f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d2f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d300 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d308 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d310 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d318 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d320 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d328 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d330 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d338 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d340 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d348 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d350 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d358 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d360 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d368 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d370 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d378 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d380 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d388 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d390 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d398 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d3a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d3a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d3b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d3b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d3c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d3c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d3d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d3d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d3e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d3e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d3f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d3f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d408 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d410 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d418 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d420 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d428 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d430 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d438 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d440 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d448 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d450 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d458 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d460 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d468 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d470 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d478 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d480 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d488 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d490 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d498 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d4a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d4a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d4b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d4b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d4c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d4c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d4d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d4d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d4e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d4e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d4f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d4f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d500 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d508 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d510 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d518 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d520 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d528 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d530 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d538 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d540 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d548 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d550 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d558 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d560 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d568 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d570 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d578 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d580 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d588 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d590 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d598 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d5a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d5a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d5b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d5b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d5c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d5c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d5d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d5d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d5e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d5e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d5f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d5f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d608 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d610 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d618 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d620 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d628 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d630 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d638 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d640 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d648 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d650 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d658 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d660 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d668 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d670 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d678 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d680 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d688 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d690 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d698 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d6a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d6a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d6b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d6b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d6c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d6c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d6d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d6d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d6e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d6e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d6f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d6f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d700 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d708 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d710 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d718 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d720 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d728 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d730 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d738 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d740 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d748 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d750 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d758 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d760 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d768 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d770 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d778 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d780 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d788 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d790 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d798 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d7a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d7a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d7b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d7b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d7c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d7c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d7d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d7d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d7e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d7e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d7f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d7f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d808 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d810 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d818 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d820 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d828 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d830 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d838 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d840 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d848 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d850 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d858 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d860 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d868 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d870 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d878 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d880 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d888 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d890 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d898 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d8a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d8a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d8b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d8b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d8c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d8c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d8d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d8d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d8e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d8e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d8f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d8f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d900 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d908 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d910 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d918 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d920 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d928 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d930 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d938 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d940 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d948 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d950 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d958 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d960 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d968 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d970 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d978 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d980 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d988 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d990 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d998 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d9a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d9a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d9b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d9b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d9c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d9c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d9d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d9d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d9e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d9e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d9f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d9f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ da00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ da08 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ da10 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ da18 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ da20 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ da28 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ da30 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ da38 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ da40 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ da48 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ da50 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ da58 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ da60 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ da68 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ da70 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ da78 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ da80 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ da88 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ da90 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ da98 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ daa0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ daa8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ dab0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ dab8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dac0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dac8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ dad0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ dad8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ dae0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ dae8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ daf0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ daf8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ db00 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ db08 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ db10 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ db18 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ db20 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ db28 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ db30 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ db38 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ db40 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ db48 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ db50 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ db58 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ db60 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ db68 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ db70 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ db78 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ db80 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ db88 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ db90 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ db98 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ dba0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ dba8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ dbb0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dbb8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dbc0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dbc8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ dbd0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ dbd8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ dbe0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ dbe8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ dbf0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ dbf8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ dc00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dc08 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ dc10 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ dc18 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ dc20 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ dc28 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ dc30 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ dc38 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ dc40 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ dc48 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ dc50 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ dc58 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ dc60 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ dc68 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ dc70 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ dc78 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ dc80 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ dc88 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ dc90 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ dc98 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ dca0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ dca8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ dcb0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ dcb8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dcc0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dcc8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ dcd0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ dcd8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ dce0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ dce8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ dcf0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ dcf8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ dd00 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ dd08 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ dd10 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ dd18 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ dd20 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ dd28 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ dd30 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dd38 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ dd40 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ dd48 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ dd50 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ dd58 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ dd60 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ dd68 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ dd70 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dd78 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ dd80 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ dd88 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ dd90 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ dd98 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ dda0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ dda8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ ddb0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ddb8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ ddc0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ ddc8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ ddd0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ ddd8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ dde0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ dde8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ ddf0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ ddf8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ de00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ de08 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ de10 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ de18 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ de20 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ de28 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ de30 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ de38 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ de40 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ de48 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ de50 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ de58 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ de60 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ de68 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ de70 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ de78 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ de80 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ de88 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ de90 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ de98 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ dea0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ dea8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ deb0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ deb8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dec0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dec8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ ded0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ ded8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ dee0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ dee8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ def0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ def8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ df00 - .long Opdf08,Opdf08,Opdf08,Opdf08,Opdf08,Opdf08,Opdf08,Opdf0f ;@ df08 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ df10 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ df18 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ df20 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ df28 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ df30 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ df38 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ df40 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ df48 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ df50 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ df58 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ df60 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ df68 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ df70 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ df78 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ df80 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ df88 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ df90 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ df98 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ dfa0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ dfa8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ dfb0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dfb8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dfc0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dfc8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ dfd0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ dfd8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ dfe0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ dfe8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ dff0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ dff8 - .long Ope000,Ope000,Ope000,Ope000,Ope000,Ope000,Ope000,Ope000 ;@ e000 - .long Ope008,Ope008,Ope008,Ope008,Ope008,Ope008,Ope008,Ope008 ;@ e008 - .long Ope010,Ope010,Ope010,Ope010,Ope010,Ope010,Ope010,Ope010 ;@ e010 - .long Ope018,Ope018,Ope018,Ope018,Ope018,Ope018,Ope018,Ope018 ;@ e018 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e020 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e028 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e030 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e038 - .long Ope040,Ope040,Ope040,Ope040,Ope040,Ope040,Ope040,Ope040 ;@ e040 - .long Ope048,Ope048,Ope048,Ope048,Ope048,Ope048,Ope048,Ope048 ;@ e048 - .long Ope050,Ope050,Ope050,Ope050,Ope050,Ope050,Ope050,Ope050 ;@ e050 - .long Ope058,Ope058,Ope058,Ope058,Ope058,Ope058,Ope058,Ope058 ;@ e058 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e060 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e068 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e070 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e078 - .long Ope080,Ope080,Ope080,Ope080,Ope080,Ope080,Ope080,Ope080 ;@ e080 - .long Ope088,Ope088,Ope088,Ope088,Ope088,Ope088,Ope088,Ope088 ;@ e088 - .long Ope090,Ope090,Ope090,Ope090,Ope090,Ope090,Ope090,Ope090 ;@ e090 - .long Ope098,Ope098,Ope098,Ope098,Ope098,Ope098,Ope098,Ope098 ;@ e098 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e0a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e0a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e0b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e0b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e0c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e0c8 - .long Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0 ;@ e0d0 - .long Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8 ;@ e0d8 - .long Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0 ;@ e0e0 - .long Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8 ;@ e0e8 - .long Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0 ;@ e0f0 - .long Ope0f8,Ope0f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e0f8 - .long Ope100,Ope100,Ope100,Ope100,Ope100,Ope100,Ope100,Ope100 ;@ e100 - .long Ope108,Ope108,Ope108,Ope108,Ope108,Ope108,Ope108,Ope108 ;@ e108 - .long Ope110,Ope110,Ope110,Ope110,Ope110,Ope110,Ope110,Ope110 ;@ e110 - .long Ope118,Ope118,Ope118,Ope118,Ope118,Ope118,Ope118,Ope118 ;@ e118 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e120 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e128 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e130 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e138 - .long Ope140,Ope140,Ope140,Ope140,Ope140,Ope140,Ope140,Ope140 ;@ e140 - .long Ope148,Ope148,Ope148,Ope148,Ope148,Ope148,Ope148,Ope148 ;@ e148 - .long Ope150,Ope150,Ope150,Ope150,Ope150,Ope150,Ope150,Ope150 ;@ e150 - .long Ope158,Ope158,Ope158,Ope158,Ope158,Ope158,Ope158,Ope158 ;@ e158 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e160 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e168 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e170 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e178 - .long Ope180,Ope180,Ope180,Ope180,Ope180,Ope180,Ope180,Ope180 ;@ e180 - .long Ope188,Ope188,Ope188,Ope188,Ope188,Ope188,Ope188,Ope188 ;@ e188 - .long Ope190,Ope190,Ope190,Ope190,Ope190,Ope190,Ope190,Ope190 ;@ e190 - .long Ope198,Ope198,Ope198,Ope198,Ope198,Ope198,Ope198,Ope198 ;@ e198 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e1a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e1a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e1b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e1b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e1c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e1c8 - .long Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0 ;@ e1d0 - .long Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8 ;@ e1d8 - .long Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0 ;@ e1e0 - .long Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8 ;@ e1e8 - .long Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0 ;@ e1f0 - .long Ope1f8,Ope1f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e1f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e200 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e208 - .long Ope210,Ope210,Ope210,Ope210,Ope210,Ope210,Ope210,Ope210 ;@ e210 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e218 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e220 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e228 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e230 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e238 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e240 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e248 - .long Ope250,Ope250,Ope250,Ope250,Ope250,Ope250,Ope250,Ope250 ;@ e250 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e258 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e260 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e268 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e270 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e278 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e280 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e288 - .long Ope290,Ope290,Ope290,Ope290,Ope290,Ope290,Ope290,Ope290 ;@ e290 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e298 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e2a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e2a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e2b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e2b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e2c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e2c8 - .long Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0 ;@ e2d0 - .long Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8 ;@ e2d8 - .long Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0 ;@ e2e0 - .long Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8 ;@ e2e8 - .long Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0 ;@ e2f0 - .long Ope2f8,Ope2f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e2f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e300 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e308 - .long Ope310,Ope310,Ope310,Ope310,Ope310,Ope310,Ope310,Ope310 ;@ e310 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e318 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e320 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e328 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e330 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e338 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e340 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e348 - .long Ope350,Ope350,Ope350,Ope350,Ope350,Ope350,Ope350,Ope350 ;@ e350 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e358 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e360 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e368 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e370 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e378 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e380 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e388 - .long Ope390,Ope390,Ope390,Ope390,Ope390,Ope390,Ope390,Ope390 ;@ e390 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e398 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e3a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e3a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e3b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e3b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e3c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e3c8 - .long Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0 ;@ e3d0 - .long Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8 ;@ e3d8 - .long Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0 ;@ e3e0 - .long Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8 ;@ e3e8 - .long Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0 ;@ e3f0 - .long Ope3f8,Ope3f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e3f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e400 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e408 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ e410 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e418 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e420 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e428 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e430 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e438 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e440 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e448 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ e450 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e458 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e460 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e468 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e470 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e478 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e480 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e488 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ e490 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e498 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e4a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e4a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e4b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e4b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e4c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e4c8 - .long Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0 ;@ e4d0 - .long Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8 ;@ e4d8 - .long Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0 ;@ e4e0 - .long Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8 ;@ e4e8 - .long Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0 ;@ e4f0 - .long Ope4f8,Ope4f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e4f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e500 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e508 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ e510 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e518 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e520 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e528 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e530 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e538 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e540 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e548 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ e550 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e558 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e560 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e568 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e570 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e578 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e580 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e588 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ e590 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e598 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e5a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e5a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e5b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e5b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e5c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e5c8 - .long Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0 ;@ e5d0 - .long Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8 ;@ e5d8 - .long Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0 ;@ e5e0 - .long Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8 ;@ e5e8 - .long Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0 ;@ e5f0 - .long Ope5f8,Ope5f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e5f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e600 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e608 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ e610 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e618 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e620 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e628 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e630 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e638 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e640 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e648 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ e650 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e658 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e660 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e668 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e670 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e678 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e680 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e688 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ e690 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e698 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e6a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e6a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e6b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e6b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e6c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e6c8 - .long Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0 ;@ e6d0 - .long Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8 ;@ e6d8 - .long Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0 ;@ e6e0 - .long Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8 ;@ e6e8 - .long Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0 ;@ e6f0 - .long Ope6f8,Ope6f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e6f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e700 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e708 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ e710 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e718 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e720 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e728 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e730 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e738 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e740 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e748 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ e750 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e758 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e760 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e768 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e770 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e778 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e780 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e788 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ e790 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e798 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e7a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e7a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e7b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e7b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e7c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e7c8 - .long Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0 ;@ e7d0 - .long Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8 ;@ e7d8 - .long Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0 ;@ e7e0 - .long Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8 ;@ e7e8 - .long Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0 ;@ e7f0 - .long Ope7f8,Ope7f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e7f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e800 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e808 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ e810 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e818 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e820 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e828 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e830 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e838 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e840 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e848 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ e850 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e858 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e860 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e868 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e870 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e878 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e880 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e888 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ e890 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e898 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e8a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e8a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e8b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e8b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e900 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e908 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ e910 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e918 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e920 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e928 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e930 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e938 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e940 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e948 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ e950 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e958 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e960 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e968 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e970 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e978 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e980 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e988 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ e990 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e998 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e9a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e9a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e9b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e9b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ ea00 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ ea08 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ ea10 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ ea18 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ ea20 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ ea28 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ ea30 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ ea38 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ ea40 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ ea48 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ ea50 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ ea58 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ ea60 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ ea68 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ ea70 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ ea78 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ ea80 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ ea88 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ ea90 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ ea98 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ eaa0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ eaa8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ eab0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ eab8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eac8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ead0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ead8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eae0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eae8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eaf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eaf8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ eb00 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ eb08 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ eb10 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ eb18 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ eb20 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ eb28 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ eb30 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ eb38 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ eb40 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ eb48 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ eb50 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ eb58 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ eb60 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ eb68 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ eb70 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ eb78 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ eb80 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ eb88 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ eb90 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ eb98 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ eba0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ eba8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ ebb0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ ebb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebf8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ ec00 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ ec08 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ ec10 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ ec18 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ ec20 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ ec28 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ ec30 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ ec38 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ ec40 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ ec48 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ ec50 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ ec58 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ ec60 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ ec68 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ ec70 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ ec78 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ ec80 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ ec88 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ ec90 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ ec98 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ eca0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ eca8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ ecb0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ ecb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ece0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ece8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecf8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ ed00 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ ed08 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ ed10 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ ed18 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ ed20 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ ed28 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ ed30 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ ed38 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ ed40 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ ed48 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ ed50 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ ed58 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ ed60 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ ed68 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ ed70 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ ed78 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ ed80 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ ed88 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ ed90 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ ed98 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ eda0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ eda8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ edb0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ edb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ede0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ede8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edf8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ ee00 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ ee08 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ ee10 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ ee18 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ ee20 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ ee28 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ ee30 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ ee38 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ ee40 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ ee48 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ ee50 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ ee58 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ ee60 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ ee68 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ ee70 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ ee78 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ ee80 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ ee88 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ ee90 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ ee98 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ eea0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ eea8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ eeb0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ eeb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eec8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eed0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eed8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eee0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eee8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eef0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eef8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ ef00 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ ef08 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ ef10 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ ef18 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ ef20 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ ef28 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ ef30 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ ef38 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ ef40 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ ef48 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ ef50 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ ef58 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ ef60 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ ef68 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ ef70 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ ef78 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ ef80 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ ef88 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ ef90 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ ef98 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ efa0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ efa8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ efb0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ efb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eff8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f000 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f008 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f010 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f018 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f020 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f028 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f030 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f038 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f040 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f048 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f050 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f058 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f060 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f068 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f070 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f078 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f080 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f088 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f090 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f098 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f100 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f108 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f110 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f118 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f120 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f128 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f130 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f138 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f140 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f148 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f150 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f158 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f160 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f168 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f170 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f178 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f180 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f188 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f190 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f198 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f200 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f208 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f210 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f218 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f220 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f228 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f230 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f238 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f240 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f248 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f250 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f258 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f260 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f268 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f270 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f278 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f280 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f288 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f290 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f298 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f300 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f308 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f310 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f318 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f320 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f328 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f330 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f338 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f340 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f348 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f350 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f358 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f360 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f368 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f370 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f378 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f380 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f388 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f390 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f398 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f400 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f408 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f410 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f418 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f420 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f428 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f430 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f438 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f440 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f448 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f450 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f458 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f460 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f468 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f470 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f478 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f480 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f488 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f490 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f498 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f500 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f508 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f510 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f518 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f520 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f528 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f530 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f538 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f540 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f548 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f550 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f558 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f560 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f568 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f570 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f578 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f580 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f588 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f590 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f598 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f600 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f608 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f610 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f618 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f620 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f628 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f630 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f638 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f640 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f648 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f650 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f658 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f660 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f668 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f670 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f678 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f680 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f688 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f690 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f698 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f700 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f708 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f710 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f718 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f720 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f728 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f730 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f738 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f740 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f748 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f750 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f758 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f760 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f768 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f770 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f778 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f780 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f788 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f790 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f798 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f800 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f808 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f810 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f818 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f820 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f828 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f830 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f838 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f840 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f848 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f850 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f858 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f860 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f868 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f870 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f878 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f880 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f888 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f890 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f898 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f900 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f908 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f910 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f918 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f920 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f928 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f930 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f938 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f940 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f948 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f950 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f958 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f960 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f968 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f970 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f978 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f980 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f988 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f990 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f998 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faa0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faa8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fab0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fab8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fac0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fac8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fad0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fad8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fae0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fae8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fba0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fba8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbe0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbe8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fca0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fca8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fce0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fce8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fda0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fda8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fde0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fde8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fea0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fea8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ feb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ feb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fec0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fec8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fed0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fed8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fee0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fee8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fef0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fef8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffa0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffa8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffe0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffe8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fff0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl -;@ notaz: we don't want to crash if we run into those 2 missing opcodes -;@ so we leave this pattern to patch it later - .long 0x78563412 - .long 0x56341290 - - -;@ vim:filetype=armasm diff --git a/src/m68k/cyclone/CycloneOld.S b/src/m68k/cyclone/CycloneOld.S deleted file mode 100644 index a6bb596..0000000 --- a/src/m68k/cyclone/CycloneOld.S +++ /dev/null @@ -1,64796 +0,0 @@ - -;@ Cyclone 68000 Emulator v0.099 - Assembler Output - -;@ Copyright (c) 2004,2011 FinalDave (emudave (at) gmail.com) -;@ Copyright (c) 2005-2011 Gražvydas "notaz" Ignotas (notasas (at) gmail.com) - -;@ This code is licensed under the GNU General Public License version 2.0 and the MAME License. -;@ You can choose the license that has the most advantages for you. - -;@ SVN repository can be found at http://code.google.com/p/cyclone68000/ - - .text - .align 4 - - .global CycloneInitJT - .global CycloneResetJT - .global CycloneRun - .global CycloneSetSr - .global CycloneGetSr - .global CycloneFlushIrq - .global CyclonePack - .global CycloneUnpack - .global CycloneVer - .global CycloneJumpTab - -CycloneVer: .long 0x0099 - -;@ --------------------------- Framework -------------------------- -CycloneRun: - stmdb sp!,{r4-r8,r10,r11,lr} - mov r7,r0 ;@ r7 = Pointer to Cpu Context - ;@ r0-3 = Temporary registers - ldrb r10,[r7,#0x46] ;@ r10 = Flags (NZCV) - ldr r6,[r7,#0x54] ;@ r6 = Opcode Jump table (from reset) - ldr r5,[r7,#0x5c] ;@ r5 = Cycles - ldr r4,[r7,#0x40] ;@ r4 = Current PC + Memory Base - ;@ r8 = Current Opcode - ldr r1,[r7,#0x44] ;@ Get SR high T_S__III and irq level - mov r10,r10,lsl #28;@ r10 = Flags 0xf0000000, cpsr format - ;@ r11 = Source value / Memory Base - - mov r2,#0 - str r2,[r7,#0x98] ;@ clear custom CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - beq NoInts0 - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - bgt CycloneDoInterrupt -NoInts0: - -;@ Check if our processor is in special state -;@ and jump to opcode handler if not - ldr r0,[r7,#0x58] ;@ state_flags - ldrh r8,[r4],#2 ;@ Fetch first opcode - tst r0,#0x13 ;@ special state? - ldreq pc,[r6,r8,asl #2] ;@ Jump to opcode handler - -CycloneSpecial: - tst r0,#2 ;@ tracing? - bne CycloneDoTrace -;@ stopped or halted - mov r5,#0 - str r5,[r7,#0x5C] ;@ eat all cycles - ldmia sp!,{r4-r8,r10,r11,pc} ;@ we are stopped, do nothing! - - -;@ We come back here after execution -CycloneEnd: - sub r4,r4,#2 -CycloneEndNoBack: - ldr r1,[r7,#0x98] - mov r10,r10,lsr #28 - tst r1,r1 - bxne r1 ;@ jump to alternative CycloneEnd - str r4,[r7,#0x40] ;@ Save Current PC + Memory Base - str r5,[r7,#0x5c] ;@ Save Cycles - strb r10,[r7,#0x46] ;@ Save Flags (NZCV) - ldmia sp!,{r4-r8,r10,r11,pc} - .ltorg - - -CycloneInitJT: -;@ fix final jumptable entries - add r0,r0,#0x10000*4 - ldr r1,[r0,#-3*4] - str r1,[r0,#-2*4] - str r1,[r0,#-1*4] - bx lr - -CycloneResetJT: - stmfd sp!,{r7,lr} - mov r7,r0 - str r1,[r7,#0x54] ;@ save CycloneJumpTab avoid literal pools - mov r0,#0 - str r0,[r7,#0x58] ;@ state_flags - str r0,[r7,#0x48] ;@ OSP - mov r1,#0x27 ;@ Supervisor mode - strb r1,[r7,#0x44] ;@ set SR high - strb r0,[r7,#0x47] ;@ IRQ - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - str r0,[r7,#0x3c] ;@ Stack pointer - mov r0,#0 - str r0,[r7,#0x60] ;@ Membase - mov r0,#4 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - str r0,[r7,#0x40] ;@ PC + base - ldmfd sp!,{r7,pc} - -CycloneSetRealTAS_JT: - bx lr - -CycloneSetSr: - mov r2,r1,lsr #8 - and r2,r2,#0xa7 ;@ only defined bits - strb r2,[r0,#0x44] ;@ set SR high - mov r2,r1,lsl #25 - str r2,[r0,#0x4c] ;@ the X flag - bic r2,r1,#0xf3 - tst r1,#1 - orrne r2,r2,#2 - tst r1,#2 - orrne r2,r2,#1 - strb r2,[r0,#0x46] ;@ flags - bx lr - -CycloneGetSr: - ldrb r1,[r0,#0x46] ;@ flags - bic r2,r1,#0xf3 - tst r1,#1 - orrne r2,r2,#2 - tst r1,#2 - orrne r2,r2,#1 - ldr r1,[r0,#0x4c] ;@ the X flag - tst r1,#0x20000000 - orrne r2,r2,#0x10 - ldrb r1,[r0,#0x44] ;@ the SR high - orr r0,r2,r1,lsl #8 - bx lr - -CyclonePack: - stmfd sp!,{r4,r5,lr} - mov r4,r0 - mov r5,r1 - mov r3,#16 -;@ 0x00-0x3f: DA registers -c_pack_loop: - ldr r1,[r0],#4 - subs r3,r3,#1 - str r1,[r5],#4 - bne c_pack_loop -;@ 0x40: PC - ldr r0,[r4,#0x40] ;@ PC + Memory Base - ldr r1,[r4,#0x60] ;@ Memory base - sub r0,r0,r1 - str r0,[r5],#4 -;@ 0x44: SR - mov r0,r4 - bl CycloneGetSr - strh r0,[r5],#2 -;@ 0x46: IRQ level - ldrb r0,[r4,#0x47] - strb r0,[r5],#2 -;@ 0x48: other SP - ldr r0,[r4,#0x48] - str r0,[r5],#4 -;@ 0x4c: CPU state flags - ldr r0,[r4,#0x58] - str r0,[r5],#4 - ldmfd sp!,{r4,r5,pc} - -CycloneUnpack: - stmfd sp!,{r5,r7,lr} - mov r7,r0 - movs r5,r1 - beq c_unpack_do_pc - mov r3,#16 -;@ 0x00-0x3f: DA registers -c_unpack_loop: - ldr r1,[r5],#4 - subs r3,r3,#1 - str r1,[r0],#4 - bne c_unpack_loop -;@ 0x40: PC - ldr r0,[r5],#4 ;@ PC - str r0,[r7,#0x40] ;@ handle later -;@ 0x44: SR - ldrh r1,[r5],#2 - mov r0,r7 - bl CycloneSetSr -;@ 0x46: IRQ level - ldrb r0,[r5],#2 - strb r0,[r7,#0x47] -;@ 0x48: other SP - ldr r0,[r5],#4 - str r0,[r7,#0x48] -;@ 0x4c: CPU state flags - ldr r0,[r5],#4 - str r0,[r7,#0x58] -c_unpack_do_pc: - ldr r0,[r7,#0x40] ;@ unbased PC - mov r1,#0 - str r1,[r7,#0x60] ;@ Memory base - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - str r0,[r7,#0x40] ;@ PC + Memory Base - ldmfd sp!,{r5,r7,pc} - -CycloneFlushIrq: - ldr r1,[r0,#0x44] ;@ Get SR high T_S__III and irq level - mov r2,r1,lsr #24 ;@ Get IRQ level - cmp r2,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r2,r1 ;@ irq<=6: Is irq<=mask ? - movle r0,#0 - bxle lr ;@ no ints - - stmdb sp!,{r4,r5,r7,r8,r10,r11,lr} - mov r7,r0 - mov r0,r2 - ldrb r10,[r7,#0x46] ;@ r10 = Flags (NZCV) - mov r5,#0 - ldr r4,[r7,#0x40] ;@ r4 = Current PC + Memory Base - mov r10,r10,lsl #28 ;@ r10 = Flags 0xf0000000, cpsr format - adr r2,CycloneFlushIrqEnd - str r2,[r7,#0x98] ;@ set custom CycloneEnd - b CycloneDoInterrupt - -CycloneFlushIrqEnd: - rsb r0,r5,#0 - str r4,[r7,#0x40] ;@ Save Current PC + Memory Base - strb r10,[r7,#0x46] ;@ Save Flags (NZCV) - ldmia sp!,{r4,r5,r7,r8,r10,r11,lr} - bx lr - - -;@ DoInterrupt - r0=IRQ level -CycloneDoInterruptGoBack: - sub r4,r4,#2 -CycloneDoInterrupt: - bic r8,r8,#0xff000000 - orr r8,r8,r0,lsl #29 ;@ abuse r8 - ldr r2,[r7,#0x58] ;@ state flags - and r0,r0,#7 - orr r3,r0,#0x20 ;@ Supervisor mode + IRQ level - bic r2,r2,#3 ;@ clear stopped and trace states - orr r2,r2,#4 ;@ set activity bit: 'not processing instruction' - str r2,[r7,#0x58] - ldrb r6,[r7,#0x44] ;@ Get old SR high, abuse r6 - strb r3,[r7,#0x44] ;@ Put new SR high - - ldr r1,[r7,#0x60] ;@ Get Memory base - ldr r11,[r7,#0x3c] ;@ Get A7 - tst r6,#0x20 -;@ get our SP: - ldreq r2,[r7,#0x48] ;@ ...or OSP as our stack pointer - streq r11,[r7,#0x48] - moveq r11,r2 -;@ Push old PC onto stack - sub r0,r11,#4 ;@ Predecremented A7 - sub r1,r4,r1 ;@ r1 = Old PC - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push old SR: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r6,lsl #8 ;@ Include old SR high - sub r0,r11,#6 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - mov r11,r8,lsr #29 - mov r0,r11 -;@ call IrqCallback if it is defined - ldr r3,[r7,#0x8c] ;@ IrqCallback - add lr,pc,#4*3 - tst r3,r3 - streqb r3,[r7,#0x47] ;@ just clear IRQ if there is no callback - mvneq r0,#0 ;@ and simulate -1 return - bxne r3 -;@ get IRQ vector address: - cmn r0,#1 ;@ returned -1? - addeq r0,r11,#0x18 ;@ use autovector then - cmn r0,#2 ;@ returned -2? - moveq r0,#0x18 ;@ use spurious interrupt then - mov r0,r0,lsl #2 ;@ get vector address - - ldr r11,[r7,#0x60] ;@ Get Memory base -;@ Read IRQ Vector: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 ;@ uninitialized int vector? - moveq r0,#0x3c - moveq lr,pc - ldreq pc,[r7,#0x70] ;@ Call read32(r0) handler - add lr,pc,#4 - add r0,r0,r11 ;@ r0 = Memory Base + New PC - ldr pc,[r7,#0x64] ;@ Call checkpc() - mov r4,r0 - - tst r4,#1 - bne ExceptionAddressError_r_prg_r4 - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#44 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -Exception: - ;@ Cause an Exception - Vector number in r0 - mov r11,lr ;@ Preserve ARM return address - bic r8,r8,#0xff000000 - orr r8,r8,r0,lsl #24 ;@ abuse r8 - ldr r6,[r7,#0x44] ;@ Get old SR high, abuse r6 - ldr r2,[r7,#0x58] ;@ state flags - and r3,r6,#0x27 ;@ clear trace and unused flags - orr r3,r3,#0x20 ;@ set supervisor mode - bic r2,r2,#3 ;@ clear stopped and trace states - str r2,[r7,#0x58] - strb r3,[r7,#0x44] ;@ Put new SR high - - ldr r0,[r7,#0x3c] ;@ Get A7 - tst r6,#0x20 -;@ get our SP: - ldreq r2,[r7,#0x48] ;@ ...or OSP as our stack pointer - streq r0,[r7,#0x48] - moveq r0,r2 -;@ Push old PC onto stack - ldr r1,[r7,#0x60] ;@ Get Memory base - sub r0,r0,#4 ;@ Predecremented A7 - str r0,[r7,#0x3c] ;@ Save A7 - sub r1,r4,r1 ;@ r1 = Old PC - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push old SR: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - ldr r0,[r7,#0x3c] ;@ A7 - orr r1,r1,r6,lsl #8 ;@ Include SR high - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ Read Exception Vector: - mov r0,r8,lsr #24 - mov r0,r0,lsl #2 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r3,[r7,#0x60] ;@ Get Memory base - add lr,pc,#4 - add r0,r0,r3 ;@ r0 = Memory Base + New PC - ldr pc,[r7,#0x64] ;@ Call checkpc() - mov r4,r0 - - tst r4,#1 - bne ExceptionAddressError_r_prg_r4 - ldr r6,[r7,#0x54] - bx r11 ;@ Return - -ExceptionAddressError_r_data: - ldr r1,[r7,#0x44] - mov r6,#0x11 - mov r11,r0 - tst r1,#0x20 - orrne r6,r6,#4 - b ExceptionAddressError - -ExceptionAddressError_r_prg: - ldr r1,[r7,#0x44] - mov r6,#0x12 - mov r11,r0 - tst r1,#0x20 - orrne r6,r6,#4 - b ExceptionAddressError - -ExceptionAddressError_w_data: - ldr r1,[r7,#0x44] - mov r6,#0x01 - mov r11,r0 - tst r1,#0x20 - orrne r6,r6,#4 - b ExceptionAddressError - -ExceptionAddressError_r_prg_r4: - ldr r1,[r7,#0x44] - ldr r3,[r7,#0x60] ;@ Get Memory base - mov r6,#0x12 - sub r11,r4,r3 - tst r1,#0x20 - orrne r6,r6,#4 - -ExceptionAddressError: -;@ r6 - info word (without instruction/not bit), r11 - faulting address - ldrb r0,[r7,#0x44] ;@ Get old SR high - ldr r2,[r7,#0x58] ;@ state flags - and r3,r0,#0x27 ;@ clear trace and unused flags - orr r3,r3,#0x20 ;@ set supervisor mode - strb r3,[r7,#0x44] ;@ Put new SR high - bic r2,r2,#3 ;@ clear stopped and trace states - tst r2,#4 - orrne r6,r6,#8 ;@ complete info word - orr r2,r2,#4 ;@ set activity bit: 'not processing instruction' - tst r2,#8 - orrne r2,r2,#0x10 ;@ HALT - orr r2,r2,#8 ;@ processing address error - str r2,[r7,#0x58] - movne r5,#0 - bne CycloneEndNoBack ;@ bye bye - and r10,r10,#0xf0000000 - orr r10,r10,r0,lsl #4 ;@ some preparations for SR push - - ldr r0,[r7,#0x3c] ;@ Get A7 - tst r10,#0x200 -;@ get our SP: - ldreq r2,[r7,#0x48] ;@ ...or OSP as our stack pointer - streq r0,[r7,#0x48] - moveq r0,r2 -;@ Push old PC onto stack - ldr r1,[r7,#0x60] ;@ Get Memory base - sub r0,r0,#4 ;@ Predecremented A7 - sub r1,r4,r1 ;@ r1 = Old PC - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push old SR: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,ror #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - ldr r0,[r7,#0x3c] ;@ A7 - and r10,r10,#0xf0000000 - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler -;@ Push IR: - ldr r0,[r7,#0x3c] ;@ A7 - mov r1,r8 - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler -;@ Push address: - ldr r0,[r7,#0x3c] ;@ A7 - mov r1,r11 - sub r0,r0,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Push info word: - ldr r0,[r7,#0x3c] ;@ A7 - mov r1,r6 - sub r0,r0,#2 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ Read Exception Vector: - mov r0,#0x0c - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r3,[r7,#0x60] ;@ Get Memory base - add lr,pc,#4 - add r0,r0,r3 ;@ r0 = Memory Base + New PC - ldr pc,[r7,#0x64] ;@ Call checkpc() - mov r4,r0 - - tst r4,#1 - bne ExceptionAddressError_r_prg_r4 - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#50 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -CycloneDoTraceWithChecks: - ldr r0,[r7,#0x58] - cmp r5,#0 - orr r0,r0,#2 ;@ go to trace mode - str r0,[r7,#0x58] - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - beq CycloneDoTrace - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - bgt CycloneDoInterruptGoBack - -CycloneDoTrace: - str r5,[r7,#0x9c] ;@ save cycles - ldr r1,[r7,#0x98] - mov r5,#0 - str r1,[r7,#0xa0] - adr r0,TraceEnd - str r0,[r7,#0x98] ;@ store TraceEnd as CycloneEnd hadler - ldr pc,[r6,r8,asl #2] ;@ Jump to opcode handler - -TraceEnd: - ldr r2,[r7,#0x58] - ldr r0,[r7,#0x9c] ;@ restore cycles - ldr r1,[r7,#0xa0] ;@ old CycloneEnd handler - mov r10,r10,lsl #28 - add r5,r0,r5 - str r1,[r7,#0x98] -;@ still tracing? - tst r2,#2 - beq TraceDisabled -;@ trace exception - ldr r1,[r7,#0x58] - mov r0,#9 - orr r1,r1,#4 ;@ set activity bit: 'not processing instruction' - str r1,[r7,#0x58] - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -TraceDisabled: - ldrh r8,[r4],#2 ;@ Fetch next opcode - cmp r5,#0 - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------------------------- Opcodes --------------------------- -Op____: ;@ Called if an opcode is not recognised - ldr r1,[r7,#0x58] - sub r4,r4,#2 - orr r1,r1,#4 ;@ set activity bit: 'not processing instruction' - str r1,[r7,#0x58] - mov r0,#4 - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -Op__al: ;@ Unrecognised a-line opcode - sub r4,r4,#2 - mov r0,#0x0a - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -Op__fl: ;@ Unrecognised f-line opcode - sub r4,r4,#2 - mov r0,#0x0b - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6702] beq 4 uses Op6702 ---------- -Op6702: - tst r10,#0x40000000 ;@ eq: Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -BccDontBranch8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6602] bne 4 uses Op6602 ---------- -Op6602: - tst r10,#0x40000000 ;@ ne: !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51c8] dbra d0, 3335 uses Op51c8 ---------- -Op51c8: -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ Dn.w is -1: -DbraMin1: - add r4,r4,#2 ;@ Skip branch offset - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a38] tst.b $3333.w uses Op4a38 ---------- -Op4a38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d040] add.w d0, d0 uses Opd040 ---------- -Opd040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a79] tst.w $33333333.l uses Op4a79 ---------- -Op4a79: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0240] andi.w #$3333, d0 uses Op0240 ---------- -Op0240: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2038] move.l $3333.w, d0 uses Op2038 ---------- -Op2038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0b8] cmp.l $3333.w, d0 uses Opb0b8 ---------- -Opb0b8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6002] bra 4 uses Op6002 ---------- -Op6002: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30c0] move.w d0, (a0)+ uses Op30c0 ---------- -Op30c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3028] move.w ($3333,a0), d0 uses Op3028 ---------- -Op3028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c40] cmpi.w #$3333, d0 uses Op0c40 ---------- -Op0c40: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c79] cmpi.w #$3333, $33333333.l uses Op0c79 ---------- -Op0c79: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e75] rts uses Op4e75 ---------- -Op4e75: -;@ Pop PC: - ldr r0,[r7,#0x3c] - add r1,r0,#4 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r1,[r7,#0x60] ;@ Get Memory base - add r0,r0,r1 ;@ Memory Base+PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e71] nop uses Op4e71 ---------- -Op4e71: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3000] move.w d0, d0 uses Op3000 ---------- -Op3000: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0839] btst #$33, $33333333.l uses Op0839 ---------- -Op0839: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [7000] moveq #$0, d0 uses Op7000 ---------- -Op7000: - movs r0,r8,asl #24 - and r1,r8,#0x0e00 - mov r0,r0,asr #24 ;@ Sign extended Quick value - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - str r0,[r7,r1,lsr #7] ;@ Store into Dn - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3040] movea.w d0, a0 uses Op3040 ---------- -Op3040: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrsh r1,[r7,r1] - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0838] btst #$33, $3333.w uses Op0838 ---------- -Op0838: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a39] tst.b $33333333.l uses Op4a39 ---------- -Op4a39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33d8] move.w (a0)+, $33333333.l uses Op33d8 ---------- -Op33d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6700] beq 3335 uses Op6700 ---------- -Op6700: - tst r10,#0x40000000 ;@ eq: Z - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -BccDontBranch16: - add r4,r4,#2 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b038] cmp.b $3333.w, d0 uses Opb038 ---------- -Opb038: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3039] move.w $33333333.l, d0 uses Op3039 ---------- -Op3039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4840] swap d0 uses Op4840 ---------- -Op4840: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - movs r1,r0,ror #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6102] bsr 4 uses Op6102 ---------- -Op6102: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC -;@ Bsr - remember old PC - ldr r12,[r7,#0x60] ;@ Get Memory base - ldr r2,[r7,#0x3c] - sub r1,r4,r12 ;@ r1 = Old PC - -;@ Push r1 onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6100] bsr 3335 uses Op6100 ---------- -Op6100: - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC -;@ Bsr - remember old PC - ldr r12,[r7,#0x60] ;@ Get Memory base - ldr r2,[r7,#0x3c] - sub r1,r4,r12 ;@ r1 = Old PC - add r1,r1,#2 - -;@ Push r1 onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e40] addq.w #7, d0 uses Op5e40 ---------- -Op5e40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1039] move.b $33333333.l, d0 uses Op1039 ---------- -Op1039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20c0] move.l d0, (a0)+ uses Op20c0 ---------- -Op20c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1018] move.b (a0)+, d0 uses Op1018 ---------- -Op1018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30d0] move.w (a0), (a0)+ uses Op30d0 ---------- -Op30d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3080] move.w d0, (a0) uses Op3080 ---------- -Op3080: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3018] move.w (a0)+, d0 uses Op3018 ---------- -Op3018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c040] and.w d0, d0 uses Opc040 ---------- -Opc040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3180] move.w d0, ($33,a0,d3.w*2) uses Op3180 ---------- -Op3180: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1198] move.b (a0)+, ($33,a0,d3.w*2) uses Op1198 ---------- -Op1198: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6502] bcs 4 uses Op6502 ---------- -Op6502: - tst r10,#0x20000000 ;@ cs: C - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6500] bcs 3335 uses Op6500 ---------- -Op6500: - tst r10,#0x20000000 ;@ cs: C - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6402] bcc 4 uses Op6402 ---------- -Op6402: - tst r10,#0x20000000 ;@ cc: !C - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6a02] bpl 4 uses Op6a02 ---------- -Op6a02: - tst r10,r10 ;@ pl: !N - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41f0] lea ($33,a0,d3.w*2), a0 uses Op41f0 ---------- -Op41f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r1: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r1,r2,r3 ;@ r1=Disp+An+Rn -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a28] tst.b ($3333,a0) uses Op4a28 ---------- -Op4a28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0828] btst #$33, ($3333,a0) uses Op0828 ---------- -Op0828: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0640] addi.w #$3333, d0 uses Op0640 ---------- -Op0640: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10c0] move.b d0, (a0)+ uses Op10c0 ---------- -Op10c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10d8] move.b (a0)+, (a0)+ uses Op10d8 ---------- -Op10d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0000] ori.b #$33, d0 uses Op0000 ---------- -Op0000: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0010] ori.b #$33, (a0) uses Op0010 ---------- -Op0010: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0018] ori.b #$33, (a0)+ uses Op0018 ---------- -Op0018: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [001f] ori.b #$33, (a7)+ uses Op001f ---------- -Op001f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0020] ori.b #$33, -(a0) uses Op0020 ---------- -Op0020: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0027] ori.b #$33, -(a7) uses Op0027 ---------- -Op0027: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0028] ori.b #$33, ($3333,a0) uses Op0028 ---------- -Op0028: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0030] ori.b #$33, ($33,a0,d3.w*2) uses Op0030 ---------- -Op0030: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0038] ori.b #$33, $3333.w uses Op0038 ---------- -Op0038: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0039] ori.b #$33, $33333333.l uses Op0039 ---------- -Op0039: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - orrs r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [003c] ori.b #$33, ccr uses Op003c ---------- -Op003c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - orr r10,r10,r0,lsl #28 - orr r2,r2,r0,lsl #25 ;@ X bit - str r2,[r7,#0x4c] ;@ Save X bit - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0040] ori.w #$3333, d0 uses Op0040 ---------- -Op0040: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0050] ori.w #$3333, (a0) uses Op0050 ---------- -Op0050: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0058] ori.w #$3333, (a0)+ uses Op0058 ---------- -Op0058: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0060] ori.w #$3333, -(a0) uses Op0060 ---------- -Op0060: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0068] ori.w #$3333, ($3333,a0) uses Op0068 ---------- -Op0068: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0070] ori.w #$3333, ($33,a0,d3.w*2) uses Op0070 ---------- -Op0070: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0078] ori.w #$3333, $3333.w uses Op0078 ---------- -Op0078: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0079] ori.w #$3333, $33333333.l uses Op0079 ---------- -Op0079: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - orrs r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [007c] ori.w #$3333, sr uses Op007c ---------- -Op007c: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - orr r10,r10,r0,lsl #28 - orr r2,r2,r0,lsl #25 ;@ X bit - orr r1,r11,r0,lsr #8 - and r1,r1,#0xa7 ;@ mask-out unused bits - str r2,[r7,#0x4c] ;@ Save X bit - strb r1,[r7,#0x44] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0080] ori.l #$33333333, d0 uses Op0080 ---------- -Op0080: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0090] ori.l #$33333333, (a0) uses Op0090 ---------- -Op0090: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0098] ori.l #$33333333, (a0)+ uses Op0098 ---------- -Op0098: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00a0] ori.l #$33333333, -(a0) uses Op00a0 ---------- -Op00a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00a8] ori.l #$33333333, ($3333,a0) uses Op00a8 ---------- -Op00a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00b0] ori.l #$33333333, ($33,a0,d3.w*2) uses Op00b0 ---------- -Op00b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00b8] ori.l #$33333333, $3333.w uses Op00b8 ---------- -Op00b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [00b9] ori.l #$33333333, $33333333.l uses Op00b9 ---------- -Op00b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - orrs r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0100] btst d0, d0 uses Op0100 ---------- -Op0100: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0108] movep.w ($3333,a0), d0 uses Op0108 ---------- -Op0108: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r6) into r11: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - - add r0,r6,#2 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r1,r11,r1,lsr #8 ;@ second byte -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0110] btst d0, (a0) uses Op0110 ---------- -Op0110: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0118] btst d0, (a0)+ uses Op0118 ---------- -Op0118: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [011f] btst d0, (a7)+ uses Op011f ---------- -Op011f: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0120] btst d0, -(a0) uses Op0120 ---------- -Op0120: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0127] btst d0, -(a7) uses Op0127 ---------- -Op0127: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0128] btst d0, ($3333,a0) uses Op0128 ---------- -Op0128: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0130] btst d0, ($33,a0,d3.w*2) uses Op0130 ---------- -Op0130: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0138] btst d0, $3333.w uses Op0138 ---------- -Op0138: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0139] btst d0, $33333333.l uses Op0139 ---------- -Op0139: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [013a] btst d0, ($3333,pc); =3335 uses Op013a ---------- -Op013a: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [013b] btst d0, ($33,pc,d3.w*2); =35 uses Op013b ---------- -Op013b: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [013c] btst d0, #$33 uses Op013c ---------- -Op013c: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0140] bchg d0, d0 uses Op0140 ---------- -Op0140: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0148] movep.l ($3333,a0), d0 uses Op0148 ---------- -Op0148: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r6) into r11: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - - add r0,r6,#2 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r11,r11,r1,lsr #8 ;@ second byte - add r0,r6,#4 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r11,r11,r1,lsr #16 ;@ third byte - add r0,r6,#6 -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r1,r0,asl #24 - - orr r1,r11,r1,lsr #24 ;@ fourth byte -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0150] bchg d0, (a0) uses Op0150 ---------- -Op0150: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0158] bchg d0, (a0)+ uses Op0158 ---------- -Op0158: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [015f] bchg d0, (a7)+ uses Op015f ---------- -Op015f: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0160] bchg d0, -(a0) uses Op0160 ---------- -Op0160: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0167] bchg d0, -(a7) uses Op0167 ---------- -Op0167: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0168] bchg d0, ($3333,a0) uses Op0168 ---------- -Op0168: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0170] bchg d0, ($33,a0,d3.w*2) uses Op0170 ---------- -Op0170: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0178] bchg d0, $3333.w uses Op0178 ---------- -Op0178: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0179] bchg d0, $33333333.l uses Op0179 ---------- -Op0179: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r1,lsl r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0180] bclr d0, d0 uses Op0180 ---------- -Op0180: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0188] movep.w d0, ($3333,a0) uses Op0188 ---------- -Op0188: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset - mov r0,r8 - mov r1,r11,lsr #8 ;@ first or third byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#2 - and r1,r11,#0xff -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0190] bclr d0, (a0) uses Op0190 ---------- -Op0190: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0198] bclr d0, (a0)+ uses Op0198 ---------- -Op0198: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [019f] bclr d0, (a7)+ uses Op019f ---------- -Op019f: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01a0] bclr d0, -(a0) uses Op01a0 ---------- -Op01a0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01a7] bclr d0, -(a7) uses Op01a7 ---------- -Op01a7: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01a8] bclr d0, ($3333,a0) uses Op01a8 ---------- -Op01a8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01b0] bclr d0, ($33,a0,d3.w*2) uses Op01b0 ---------- -Op01b0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01b8] bclr d0, $3333.w uses Op01b8 ---------- -Op01b8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01b9] bclr d0, $33333333.l uses Op01b9 ---------- -Op01b9: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r1,lsl r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01c0] bset d0, d0 uses Op01c0 ---------- -Op01c0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - and r11,r11,#31 ;@ reg - do mod 32 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01c8] movep.l d0, ($3333,a0) uses Op01c8 ---------- -Op01c8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset - mov r1,r11,lsr #24 ;@ first byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#2 - mov r1,r11,lsr #16 ;@ second byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#4 - mov r1,r11,lsr #8 ;@ first or third byte -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - add r0,r8,#6 - and r1,r11,#0xff -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01d0] bset d0, (a0) uses Op01d0 ---------- -Op01d0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01d8] bset d0, (a0)+ uses Op01d8 ---------- -Op01d8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01df] bset d0, (a7)+ uses Op01df ---------- -Op01df: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01e0] bset d0, -(a0) uses Op01e0 ---------- -Op01e0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01e7] bset d0, -(a7) uses Op01e7 ---------- -Op01e7: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01e8] bset d0, ($3333,a0) uses Op01e8 ---------- -Op01e8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01f0] bset d0, ($33,a0,d3.w*2) uses Op01f0 ---------- -Op01f0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01f8] bset d0, $3333.w uses Op01f8 ---------- -Op01f8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [01f9] bset d0, $33333333.l uses Op01f9 ---------- -Op01f9: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r11: - ldr r11,[r7,r11,lsr #7] - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r11,r11,#7 ;@ mem - do mod 8 - - mov r1,#1 - tst r0,r1,lsl r11 ;@ Do arithmetic - bicne r10,r10,#0x40000000 - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r1,lsl r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0200] andi.b #$33, d0 uses Op0200 ---------- -Op0200: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0210] andi.b #$33, (a0) uses Op0210 ---------- -Op0210: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0218] andi.b #$33, (a0)+ uses Op0218 ---------- -Op0218: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [021f] andi.b #$33, (a7)+ uses Op021f ---------- -Op021f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0220] andi.b #$33, -(a0) uses Op0220 ---------- -Op0220: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0227] andi.b #$33, -(a7) uses Op0227 ---------- -Op0227: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0228] andi.b #$33, ($3333,a0) uses Op0228 ---------- -Op0228: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0230] andi.b #$33, ($33,a0,d3.w*2) uses Op0230 ---------- -Op0230: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0238] andi.b #$33, $3333.w uses Op0238 ---------- -Op0238: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0239] andi.b #$33, $33333333.l uses Op0239 ---------- -Op0239: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - ands r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [023c] andi.b #$33, ccr uses Op023c ---------- -Op023c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - and r10,r10,r0,lsl #28 - and r2,r2,r0,lsl #25 ;@ X bit - str r2,[r7,#0x4c] ;@ Save X bit - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0250] andi.w #$3333, (a0) uses Op0250 ---------- -Op0250: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0258] andi.w #$3333, (a0)+ uses Op0258 ---------- -Op0258: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0260] andi.w #$3333, -(a0) uses Op0260 ---------- -Op0260: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0268] andi.w #$3333, ($3333,a0) uses Op0268 ---------- -Op0268: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0270] andi.w #$3333, ($33,a0,d3.w*2) uses Op0270 ---------- -Op0270: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0278] andi.w #$3333, $3333.w uses Op0278 ---------- -Op0278: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0279] andi.w #$3333, $33333333.l uses Op0279 ---------- -Op0279: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - ands r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [027c] andi.w #$3333, sr uses Op027c ---------- -Op027c: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - and r10,r10,r0,lsl #28 - and r2,r2,r0,lsl #25 ;@ X bit - and r1,r11,r0,lsr #8 - str r2,[r7,#0x4c] ;@ Save X bit - strb r1,[r7,#0x44] - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap027c - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap027c: - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ble CycloneEnd -;@ CheckInterrupt: - ldr r1,[r7,#0x44] - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [0280] andi.l #$33333333, d0 uses Op0280 ---------- -Op0280: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0290] andi.l #$33333333, (a0) uses Op0290 ---------- -Op0290: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0298] andi.l #$33333333, (a0)+ uses Op0298 ---------- -Op0298: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02a0] andi.l #$33333333, -(a0) uses Op02a0 ---------- -Op02a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02a8] andi.l #$33333333, ($3333,a0) uses Op02a8 ---------- -Op02a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02b0] andi.l #$33333333, ($33,a0,d3.w*2) uses Op02b0 ---------- -Op02b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02b8] andi.l #$33333333, $3333.w uses Op02b8 ---------- -Op02b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [02b9] andi.l #$33333333, $33333333.l uses Op02b9 ---------- -Op02b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - ands r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0400] subi.b #$33, d0 uses Op0400 ---------- -Op0400: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0410] subi.b #$33, (a0) uses Op0410 ---------- -Op0410: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0418] subi.b #$33, (a0)+ uses Op0418 ---------- -Op0418: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [041f] subi.b #$33, (a7)+ uses Op041f ---------- -Op041f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0420] subi.b #$33, -(a0) uses Op0420 ---------- -Op0420: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0427] subi.b #$33, -(a7) uses Op0427 ---------- -Op0427: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0428] subi.b #$33, ($3333,a0) uses Op0428 ---------- -Op0428: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0430] subi.b #$33, ($33,a0,d3.w*2) uses Op0430 ---------- -Op0430: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0438] subi.b #$33, $3333.w uses Op0438 ---------- -Op0438: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0439] subi.b #$33, $33333333.l uses Op0439 ---------- -Op0439: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0440] subi.w #$3333, d0 uses Op0440 ---------- -Op0440: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0450] subi.w #$3333, (a0) uses Op0450 ---------- -Op0450: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0458] subi.w #$3333, (a0)+ uses Op0458 ---------- -Op0458: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0460] subi.w #$3333, -(a0) uses Op0460 ---------- -Op0460: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0468] subi.w #$3333, ($3333,a0) uses Op0468 ---------- -Op0468: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0470] subi.w #$3333, ($33,a0,d3.w*2) uses Op0470 ---------- -Op0470: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0478] subi.w #$3333, $3333.w uses Op0478 ---------- -Op0478: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0479] subi.w #$3333, $33333333.l uses Op0479 ---------- -Op0479: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0480] subi.l #$33333333, d0 uses Op0480 ---------- -Op0480: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0490] subi.l #$33333333, (a0) uses Op0490 ---------- -Op0490: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0498] subi.l #$33333333, (a0)+ uses Op0498 ---------- -Op0498: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04a0] subi.l #$33333333, -(a0) uses Op04a0 ---------- -Op04a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04a8] subi.l #$33333333, ($3333,a0) uses Op04a8 ---------- -Op04a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04b0] subi.l #$33333333, ($33,a0,d3.w*2) uses Op04b0 ---------- -Op04b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04b8] subi.l #$33333333, $3333.w uses Op04b8 ---------- -Op04b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [04b9] subi.l #$33333333, $33333333.l uses Op04b9 ---------- -Op04b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0600] addi.b #$33, d0 uses Op0600 ---------- -Op0600: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0610] addi.b #$33, (a0) uses Op0610 ---------- -Op0610: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0618] addi.b #$33, (a0)+ uses Op0618 ---------- -Op0618: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [061f] addi.b #$33, (a7)+ uses Op061f ---------- -Op061f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0620] addi.b #$33, -(a0) uses Op0620 ---------- -Op0620: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0627] addi.b #$33, -(a7) uses Op0627 ---------- -Op0627: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0628] addi.b #$33, ($3333,a0) uses Op0628 ---------- -Op0628: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0630] addi.b #$33, ($33,a0,d3.w*2) uses Op0630 ---------- -Op0630: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0638] addi.b #$33, $3333.w uses Op0638 ---------- -Op0638: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0639] addi.b #$33, $33333333.l uses Op0639 ---------- -Op0639: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - adds r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0650] addi.w #$3333, (a0) uses Op0650 ---------- -Op0650: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0658] addi.w #$3333, (a0)+ uses Op0658 ---------- -Op0658: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0660] addi.w #$3333, -(a0) uses Op0660 ---------- -Op0660: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0668] addi.w #$3333, ($3333,a0) uses Op0668 ---------- -Op0668: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0670] addi.w #$3333, ($33,a0,d3.w*2) uses Op0670 ---------- -Op0670: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0678] addi.w #$3333, $3333.w uses Op0678 ---------- -Op0678: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0679] addi.w #$3333, $33333333.l uses Op0679 ---------- -Op0679: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - adds r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0680] addi.l #$33333333, d0 uses Op0680 ---------- -Op0680: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0690] addi.l #$33333333, (a0) uses Op0690 ---------- -Op0690: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0698] addi.l #$33333333, (a0)+ uses Op0698 ---------- -Op0698: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06a0] addi.l #$33333333, -(a0) uses Op06a0 ---------- -Op06a0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06a8] addi.l #$33333333, ($3333,a0) uses Op06a8 ---------- -Op06a8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06b0] addi.l #$33333333, ($33,a0,d3.w*2) uses Op06b0 ---------- -Op06b0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06b8] addi.l #$33333333, $3333.w uses Op06b8 ---------- -Op06b8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [06b9] addi.l #$33333333, $33333333.l uses Op06b9 ---------- -Op06b9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - adds r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0800] btst #$33, d0 uses Op0800 ---------- -Op0800: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0810] btst #$33, (a0) uses Op0810 ---------- -Op0810: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0818] btst #$33, (a0)+ uses Op0818 ---------- -Op0818: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [081f] btst #$33, (a7)+ uses Op081f ---------- -Op081f: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0820] btst #$33, -(a0) uses Op0820 ---------- -Op0820: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0827] btst #$33, -(a7) uses Op0827 ---------- -Op0827: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0830] btst #$33, ($33,a0,d3.w*2) uses Op0830 ---------- -Op0830: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [083a] btst #$33, ($3333,pc); =3337 uses Op083a ---------- -Op083a: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [083b] btst #$33, ($33,pc,d3.w*2); =37 uses Op083b ---------- -Op083b: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0840] bchg #$33, d0 uses Op0840 ---------- -Op0840: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0850] bchg #$33, (a0) uses Op0850 ---------- -Op0850: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0858] bchg #$33, (a0)+ uses Op0858 ---------- -Op0858: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [085f] bchg #$33, (a7)+ uses Op085f ---------- -Op085f: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0860] bchg #$33, -(a0) uses Op0860 ---------- -Op0860: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0867] bchg #$33, -(a7) uses Op0867 ---------- -Op0867: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0868] bchg #$33, ($3333,a0) uses Op0868 ---------- -Op0868: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0870] bchg #$33, ($33,a0,d3.w*2) uses Op0870 ---------- -Op0870: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0878] bchg #$33, $3333.w uses Op0878 ---------- -Op0878: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0879] bchg #$33, $33333333.l uses Op0879 ---------- -Op0879: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - eor r1,r0,r11 ;@ Toggle bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0880] bclr #$33, d0 uses Op0880 ---------- -Op0880: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0890] bclr #$33, (a0) uses Op0890 ---------- -Op0890: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0898] bclr #$33, (a0)+ uses Op0898 ---------- -Op0898: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [089f] bclr #$33, (a7)+ uses Op089f ---------- -Op089f: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08a0] bclr #$33, -(a0) uses Op08a0 ---------- -Op08a0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08a7] bclr #$33, -(a7) uses Op08a7 ---------- -Op08a7: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08a8] bclr #$33, ($3333,a0) uses Op08a8 ---------- -Op08a8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08b0] bclr #$33, ($33,a0,d3.w*2) uses Op08b0 ---------- -Op08b0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08b8] bclr #$33, $3333.w uses Op08b8 ---------- -Op08b8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08b9] bclr #$33, $33333333.l uses Op08b9 ---------- -Op08b9: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - bic r1,r0,r11 ;@ Clear bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08c0] bset #$33, d0 uses Op08c0 ---------- -Op08c0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#0x1F ;@ reg - do mod 32 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get register index into r8: - and r8,r8,#0x000f -;@ EaRead : Read register[r8] into r0: - ldr r0,[r7,r8,lsl #2] - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: r1 into register[r8]: - str r1,[r7,r8,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08d0] bset #$33, (a0) uses Op08d0 ---------- -Op08d0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08d8] bset #$33, (a0)+ uses Op08d8 ---------- -Op08d8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a0)+' into r8: - and r2,r8,#0x000f - ldr r8,[r7,r2,lsl #2] - add r3,r8,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08df] bset #$33, (a7)+ uses Op08df ---------- -Op08df: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '(a7)+' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - add r3,r8,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08e0] bset #$33, -(a0) uses Op08e0 ---------- -Op08e0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r8,[r7,r2,lsl #2] - sub r8,r8,#1 ;@ Pre-decrement An - str r8,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08e7] bset #$33, -(a7) uses Op08e7 ---------- -Op08e7: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#2 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08e8] bset #$33, ($3333,a0) uses Op08e8 ---------- -Op08e8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($3333,a0)' into r8: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r8,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08f0] bset #$33, ($33,a0,d3.w*2) uses Op08f0 ---------- -Op08f0: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r8: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r8,r2,r3 ;@ r8=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08f8] bset #$33, $3333.w uses Op08f8 ---------- -Op08f8: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$3333.w' into r8: - ldrsh r8,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [08f9] bset #$33, $33333333.l uses Op08f9 ---------- -Op08f9: - -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - mov r11,#1 - bic r10,r10,#0x40000000 ;@ Blank Z flag - and r0,r0,#7 ;@ mem - do mod 8 - mov r11,r11,lsl r0 ;@ Make bit mask - -;@ EaCalc : Get '$33333333.l' into r8: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r8,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r8) into r0: - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - tst r0,r11 ;@ Do arithmetic - orreq r10,r10,#0x40000000 ;@ Get Z flag - - orr r1,r0,r11 ;@ Set bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r8): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a00] eori.b #$33, d0 uses Op0a00 ---------- -Op0a00: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a10] eori.b #$33, (a0) uses Op0a10 ---------- -Op0a10: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a18] eori.b #$33, (a0)+ uses Op0a18 ---------- -Op0a18: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a1f] eori.b #$33, (a7)+ uses Op0a1f ---------- -Op0a1f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a20] eori.b #$33, -(a0) uses Op0a20 ---------- -Op0a20: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a27] eori.b #$33, -(a7) uses Op0a27 ---------- -Op0a27: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a28] eori.b #$33, ($3333,a0) uses Op0a28 ---------- -Op0a28: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a30] eori.b #$33, ($33,a0,d3.w*2) uses Op0a30 ---------- -Op0a30: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a38] eori.b #$33, $3333.w uses Op0a38 ---------- -Op0a38: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a39] eori.b #$33, $33333333.l uses Op0a39 ---------- -Op0a39: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - eors r1,r10,r0,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a3c] eori.b #$33, ccr uses Op0a3c ---------- -Op0a3c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - eor r10,r10,r0,lsl #28 - eor r2,r2,r0,lsl #25 ;@ X bit - str r2,[r7,#0x4c] ;@ Save X bit - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a40] eori.w #$3333, d0 uses Op0a40 ---------- -Op0a40: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a50] eori.w #$3333, (a0) uses Op0a50 ---------- -Op0a50: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a58] eori.w #$3333, (a0)+ uses Op0a58 ---------- -Op0a58: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a60] eori.w #$3333, -(a0) uses Op0a60 ---------- -Op0a60: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a68] eori.w #$3333, ($3333,a0) uses Op0a68 ---------- -Op0a68: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a70] eori.w #$3333, ($33,a0,d3.w*2) uses Op0a70 ---------- -Op0a70: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a78] eori.w #$3333, $3333.w uses Op0a78 ---------- -Op0a78: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a79] eori.w #$3333, $33333333.l uses Op0a79 ---------- -Op0a79: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - eors r1,r10,r0,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a7c] eori.w #$3333, sr uses Op0a7c ---------- -Op0a7c: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - ldr r2,[r7,#0x4c] ;@ Load old X bit - eor r10,r10,r0,lsl #28 - eor r2,r2,r0,lsl #25 ;@ X bit - eor r1,r11,r0,lsr #8 - and r1,r1,#0xa7 ;@ mask-out unused bits - str r2,[r7,#0x4c] ;@ Save X bit - strb r1,[r7,#0x44] - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap0a7c - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap0a7c: - - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [0a80] eori.l #$33333333, d0 uses Op0a80 ---------- -Op0a80: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a90] eori.l #$33333333, (a0) uses Op0a90 ---------- -Op0a90: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0a98] eori.l #$33333333, (a0)+ uses Op0a98 ---------- -Op0a98: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0aa0] eori.l #$33333333, -(a0) uses Op0aa0 ---------- -Op0aa0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0aa8] eori.l #$33333333, ($3333,a0) uses Op0aa8 ---------- -Op0aa8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ab0] eori.l #$33333333, ($33,a0,d3.w*2) uses Op0ab0 ---------- -Op0ab0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ab8] eori.l #$33333333, $3333.w uses Op0ab8 ---------- -Op0ab8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ab9] eori.l #$33333333, $33333333.l uses Op0ab9 ---------- -Op0ab9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - eors r1,r10,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c00] cmpi.b #$33, d0 uses Op0c00 ---------- -Op0c00: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c10] cmpi.b #$33, (a0) uses Op0c10 ---------- -Op0c10: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c18] cmpi.b #$33, (a0)+ uses Op0c18 ---------- -Op0c18: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c1f] cmpi.b #$33, (a7)+ uses Op0c1f ---------- -Op0c1f: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c20] cmpi.b #$33, -(a0) uses Op0c20 ---------- -Op0c20: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c27] cmpi.b #$33, -(a7) uses Op0c27 ---------- -Op0c27: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c28] cmpi.b #$33, ($3333,a0) uses Op0c28 ---------- -Op0c28: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c30] cmpi.b #$33, ($33,a0,d3.w*2) uses Op0c30 ---------- -Op0c30: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c38] cmpi.b #$33, $3333.w uses Op0c38 ---------- -Op0c38: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c39] cmpi.b #$33, $33333333.l uses Op0c39 ---------- -Op0c39: -;@ EaCalc : Get '#$33' into r10: - ldrsb r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r10,r10,asl #24 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #24 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c50] cmpi.w #$3333, (a0) uses Op0c50 ---------- -Op0c50: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c58] cmpi.w #$3333, (a0)+ uses Op0c58 ---------- -Op0c58: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c60] cmpi.w #$3333, -(a0) uses Op0c60 ---------- -Op0c60: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c68] cmpi.w #$3333, ($3333,a0) uses Op0c68 ---------- -Op0c68: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c70] cmpi.w #$3333, ($33,a0,d3.w*2) uses Op0c70 ---------- -Op0c70: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c78] cmpi.w #$3333, $3333.w uses Op0c78 ---------- -Op0c78: -;@ EaCalc : Get '#$3333' into r10: - ldrsh r10,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r10,r10,asl #16 -;@ Do arithmetic: - rsbs r1,r10,r0,asl #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c80] cmpi.l #$33333333, d0 uses Op0c80 ---------- -Op0c80: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c90] cmpi.l #$33333333, (a0) uses Op0c90 ---------- -Op0c90: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0c98] cmpi.l #$33333333, (a0)+ uses Op0c98 ---------- -Op0c98: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ca0] cmpi.l #$33333333, -(a0) uses Op0ca0 ---------- -Op0ca0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0ca8] cmpi.l #$33333333, ($3333,a0) uses Op0ca8 ---------- -Op0ca8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0cb0] cmpi.l #$33333333, ($33,a0,d3.w*2) uses Op0cb0 ---------- -Op0cb0: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0cb8] cmpi.l #$33333333, $3333.w uses Op0cb8 ---------- -Op0cb8: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [0cb9] cmpi.l #$33333333, $33333333.l uses Op0cb9 ---------- -Op0cb9: -;@ EaCalc : Get '#$33333333' into r10: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r10,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r10) into r10: - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: - rsbs r1,r10,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1000] move.b d0, d0 uses Op1000 ---------- -Op1000: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1010] move.b (a0), d0 uses Op1010 ---------- -Op1010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [101f] move.b (a7)+, d0 uses Op101f ---------- -Op101f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1020] move.b -(a0), d0 uses Op1020 ---------- -Op1020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1027] move.b -(a7), d0 uses Op1027 ---------- -Op1027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1028] move.b ($3333,a0), d0 uses Op1028 ---------- -Op1028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1030] move.b ($33,a0,d3.w*2), d0 uses Op1030 ---------- -Op1030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1038] move.b $3333.w, d0 uses Op1038 ---------- -Op1038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [103a] move.b ($3333,pc), d0; =3335 uses Op103a ---------- -Op103a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [103b] move.b ($33,pc,d3.w*2), d0; =35 uses Op103b ---------- -Op103b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [103c] move.b #$33, d0 uses Op103c ---------- -Op103c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #24 - strb r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1080] move.b d0, (a0) uses Op1080 ---------- -Op1080: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1090] move.b (a0), (a0) uses Op1090 ---------- -Op1090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1098] move.b (a0)+, (a0) uses Op1098 ---------- -Op1098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [109f] move.b (a7)+, (a0) uses Op109f ---------- -Op109f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10a0] move.b -(a0), (a0) uses Op10a0 ---------- -Op10a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10a7] move.b -(a7), (a0) uses Op10a7 ---------- -Op10a7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10a8] move.b ($3333,a0), (a0) uses Op10a8 ---------- -Op10a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10b0] move.b ($33,a0,d3.w*2), (a0) uses Op10b0 ---------- -Op10b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10b8] move.b $3333.w, (a0) uses Op10b8 ---------- -Op10b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10b9] move.b $33333333.l, (a0) uses Op10b9 ---------- -Op10b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10ba] move.b ($3333,pc), (a0); =3335 uses Op10ba ---------- -Op10ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10bb] move.b ($33,pc,d3.w*2), (a0); =35 uses Op10bb ---------- -Op10bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10bc] move.b #$33, (a0) uses Op10bc ---------- -Op10bc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10d0] move.b (a0), (a0)+ uses Op10d0 ---------- -Op10d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10df] move.b (a7)+, (a0)+ uses Op10df ---------- -Op10df: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10e0] move.b -(a0), (a0)+ uses Op10e0 ---------- -Op10e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10e7] move.b -(a7), (a0)+ uses Op10e7 ---------- -Op10e7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10e8] move.b ($3333,a0), (a0)+ uses Op10e8 ---------- -Op10e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10f0] move.b ($33,a0,d3.w*2), (a0)+ uses Op10f0 ---------- -Op10f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10f8] move.b $3333.w, (a0)+ uses Op10f8 ---------- -Op10f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10f9] move.b $33333333.l, (a0)+ uses Op10f9 ---------- -Op10f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10fa] move.b ($3333,pc), (a0)+; =3335 uses Op10fa ---------- -Op10fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10fb] move.b ($33,pc,d3.w*2), (a0)+; =35 uses Op10fb ---------- -Op10fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [10fc] move.b #$33, (a0)+ uses Op10fc ---------- -Op10fc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1100] move.b d0, -(a0) uses Op1100 ---------- -Op1100: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1110] move.b (a0), -(a0) uses Op1110 ---------- -Op1110: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1118] move.b (a0)+, -(a0) uses Op1118 ---------- -Op1118: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [111f] move.b (a7)+, -(a0) uses Op111f ---------- -Op111f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1120] move.b -(a0), -(a0) uses Op1120 ---------- -Op1120: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1127] move.b -(a7), -(a0) uses Op1127 ---------- -Op1127: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1128] move.b ($3333,a0), -(a0) uses Op1128 ---------- -Op1128: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1130] move.b ($33,a0,d3.w*2), -(a0) uses Op1130 ---------- -Op1130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1138] move.b $3333.w, -(a0) uses Op1138 ---------- -Op1138: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1139] move.b $33333333.l, -(a0) uses Op1139 ---------- -Op1139: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [113a] move.b ($3333,pc), -(a0); =3335 uses Op113a ---------- -Op113a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [113b] move.b ($33,pc,d3.w*2), -(a0); =35 uses Op113b ---------- -Op113b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [113c] move.b #$33, -(a0) uses Op113c ---------- -Op113c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1140] move.b d0, ($3333,a0) uses Op1140 ---------- -Op1140: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1150] move.b (a0), ($3333,a0) uses Op1150 ---------- -Op1150: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1158] move.b (a0)+, ($3333,a0) uses Op1158 ---------- -Op1158: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [115f] move.b (a7)+, ($3333,a0) uses Op115f ---------- -Op115f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1160] move.b -(a0), ($3333,a0) uses Op1160 ---------- -Op1160: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1167] move.b -(a7), ($3333,a0) uses Op1167 ---------- -Op1167: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1168] move.b ($3333,a0), ($3333,a0) uses Op1168 ---------- -Op1168: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1170] move.b ($33,a0,d3.w*2), ($3333,a0) uses Op1170 ---------- -Op1170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1178] move.b $3333.w, ($3333,a0) uses Op1178 ---------- -Op1178: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1179] move.b $33333333.l, ($3333,a0) uses Op1179 ---------- -Op1179: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [117a] move.b ($3333,pc), ($3333,a0); =3335 uses Op117a ---------- -Op117a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [117b] move.b ($33,pc,d3.w*2), ($3333,a0); =35 uses Op117b ---------- -Op117b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [117c] move.b #$33, ($3333,a0) uses Op117c ---------- -Op117c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1180] move.b d0, ($33,a0,d3.w*2) uses Op1180 ---------- -Op1180: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1190] move.b (a0), ($33,a0,d3.w*2) uses Op1190 ---------- -Op1190: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [119f] move.b (a7)+, ($33,a0,d3.w*2) uses Op119f ---------- -Op119f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11a0] move.b -(a0), ($33,a0,d3.w*2) uses Op11a0 ---------- -Op11a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11a7] move.b -(a7), ($33,a0,d3.w*2) uses Op11a7 ---------- -Op11a7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11a8] move.b ($3333,a0), ($33,a0,d3.w*2) uses Op11a8 ---------- -Op11a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11b0] move.b ($33,a0,d3.w*2), ($33,a0,d3.w*2) uses Op11b0 ---------- -Op11b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11b8] move.b $3333.w, ($33,a0,d3.w*2) uses Op11b8 ---------- -Op11b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11b9] move.b $33333333.l, ($33,a0,d3.w*2) uses Op11b9 ---------- -Op11b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11ba] move.b ($3333,pc), ($33,a0,d3.w*2); =3335 uses Op11ba ---------- -Op11ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11bb] move.b ($33,pc,d3.w*2), ($33,a0,d3.w*2); =35 uses Op11bb ---------- -Op11bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11bc] move.b #$33, ($33,a0,d3.w*2) uses Op11bc ---------- -Op11bc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11c0] move.b d0, $3333.w uses Op11c0 ---------- -Op11c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11d0] move.b (a0), $3333.w uses Op11d0 ---------- -Op11d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11d8] move.b (a0)+, $3333.w uses Op11d8 ---------- -Op11d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11df] move.b (a7)+, $3333.w uses Op11df ---------- -Op11df: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11e0] move.b -(a0), $3333.w uses Op11e0 ---------- -Op11e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11e7] move.b -(a7), $3333.w uses Op11e7 ---------- -Op11e7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11e8] move.b ($3333,a0), $3333.w uses Op11e8 ---------- -Op11e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11f0] move.b ($33,a0,d3.w*2), $3333.w uses Op11f0 ---------- -Op11f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11f8] move.b $3333.w, $3333.w uses Op11f8 ---------- -Op11f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11f9] move.b $33333333.l, $3333.w uses Op11f9 ---------- -Op11f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11fa] move.b ($3333,pc), $3333.w; =3335 uses Op11fa ---------- -Op11fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11fb] move.b ($33,pc,d3.w*2), $3333.w; =35 uses Op11fb ---------- -Op11fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [11fc] move.b #$33, $3333.w uses Op11fc ---------- -Op11fc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13c0] move.b d0, $33333333.l uses Op13c0 ---------- -Op13c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13d0] move.b (a0), $33333333.l uses Op13d0 ---------- -Op13d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13d8] move.b (a0)+, $33333333.l uses Op13d8 ---------- -Op13d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13df] move.b (a7)+, $33333333.l uses Op13df ---------- -Op13df: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13e0] move.b -(a0), $33333333.l uses Op13e0 ---------- -Op13e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13e7] move.b -(a7), $33333333.l uses Op13e7 ---------- -Op13e7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13e8] move.b ($3333,a0), $33333333.l uses Op13e8 ---------- -Op13e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13f0] move.b ($33,a0,d3.w*2), $33333333.l uses Op13f0 ---------- -Op13f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13f8] move.b $3333.w, $33333333.l uses Op13f8 ---------- -Op13f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13f9] move.b $33333333.l, $33333333.l uses Op13f9 ---------- -Op13f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13fa] move.b ($3333,pc), $33333333.l; =3335 uses Op13fa ---------- -Op13fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13fb] move.b ($33,pc,d3.w*2), $33333333.l; =35 uses Op13fb ---------- -Op13fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [13fc] move.b #$33, $33333333.l uses Op13fc ---------- -Op13fc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ec0] move.b d0, (a7)+ uses Op1ec0 ---------- -Op1ec0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ed0] move.b (a0), (a7)+ uses Op1ed0 ---------- -Op1ed0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ed8] move.b (a0)+, (a7)+ uses Op1ed8 ---------- -Op1ed8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1edf] move.b (a7)+, (a7)+ uses Op1edf ---------- -Op1edf: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ee0] move.b -(a0), (a7)+ uses Op1ee0 ---------- -Op1ee0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ee7] move.b -(a7), (a7)+ uses Op1ee7 ---------- -Op1ee7: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ee8] move.b ($3333,a0), (a7)+ uses Op1ee8 ---------- -Op1ee8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ef0] move.b ($33,a0,d3.w*2), (a7)+ uses Op1ef0 ---------- -Op1ef0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ef8] move.b $3333.w, (a7)+ uses Op1ef8 ---------- -Op1ef8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1ef9] move.b $33333333.l, (a7)+ uses Op1ef9 ---------- -Op1ef9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1efa] move.b ($3333,pc), (a7)+; =3335 uses Op1efa ---------- -Op1efa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1efb] move.b ($33,pc,d3.w*2), (a7)+; =35 uses Op1efb ---------- -Op1efb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1efc] move.b #$33, (a7)+ uses Op1efc ---------- -Op1efc: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f00] move.b d0, -(a7) uses Op1f00 ---------- -Op1f00: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldrb r1,[r7,r1,lsl #2] - - movs r2,r1,lsl #24 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f10] move.b (a0), -(a7) uses Op1f10 ---------- -Op1f10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f18] move.b (a0)+, -(a7) uses Op1f18 ---------- -Op1f18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f1f] move.b (a7)+, -(a7) uses Op1f1f ---------- -Op1f1f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f20] move.b -(a0), -(a7) uses Op1f20 ---------- -Op1f20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f27] move.b -(a7), -(a7) uses Op1f27 ---------- -Op1f27: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f28] move.b ($3333,a0), -(a7) uses Op1f28 ---------- -Op1f28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f30] move.b ($33,a0,d3.w*2), -(a7) uses Op1f30 ---------- -Op1f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f38] move.b $3333.w, -(a7) uses Op1f38 ---------- -Op1f38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f39] move.b $33333333.l, -(a7) uses Op1f39 ---------- -Op1f39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f3a] move.b ($3333,pc), -(a7); =3335 uses Op1f3a ---------- -Op1f3a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f3b] move.b ($33,pc,d3.w*2), -(a7); =35 uses Op1f3b ---------- -Op1f3b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [1f3c] move.b #$33, -(a7) uses Op1f3c ---------- -Op1f3c: -;@ EaCalc : Get '#$33' into r1: - ldrsb r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r1) into r1: - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #24 - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2000] move.l d0, d0 uses Op2000 ---------- -Op2000: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2010] move.l (a0), d0 uses Op2010 ---------- -Op2010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2018] move.l (a0)+, d0 uses Op2018 ---------- -Op2018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2020] move.l -(a0), d0 uses Op2020 ---------- -Op2020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2028] move.l ($3333,a0), d0 uses Op2028 ---------- -Op2028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2030] move.l ($33,a0,d3.w*2), d0 uses Op2030 ---------- -Op2030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2039] move.l $33333333.l, d0 uses Op2039 ---------- -Op2039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [203a] move.l ($3333,pc), d0; =3335 uses Op203a ---------- -Op203a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [203b] move.l ($33,pc,d3.w*2), d0; =35 uses Op203b ---------- -Op203b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [203c] move.l #$33333333, d0 uses Op203c ---------- -Op203c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2040] movea.l d0, a0 uses Op2040 ---------- -Op2040: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2050] movea.l (a0), a0 uses Op2050 ---------- -Op2050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2058] movea.l (a0)+, a0 uses Op2058 ---------- -Op2058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2060] movea.l -(a0), a0 uses Op2060 ---------- -Op2060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2068] movea.l ($3333,a0), a0 uses Op2068 ---------- -Op2068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2070] movea.l ($33,a0,d3.w*2), a0 uses Op2070 ---------- -Op2070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2078] movea.l $3333.w, a0 uses Op2078 ---------- -Op2078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2079] movea.l $33333333.l, a0 uses Op2079 ---------- -Op2079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [207a] movea.l ($3333,pc), a0; =3335 uses Op207a ---------- -Op207a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [207b] movea.l ($33,pc,d3.w*2), a0; =35 uses Op207b ---------- -Op207b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - mov r1,r0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [207c] movea.l #$33333333, a0 uses Op207c ---------- -Op207c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2080] move.l d0, (a0) uses Op2080 ---------- -Op2080: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2090] move.l (a0), (a0) uses Op2090 ---------- -Op2090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2098] move.l (a0)+, (a0) uses Op2098 ---------- -Op2098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20a0] move.l -(a0), (a0) uses Op20a0 ---------- -Op20a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20a8] move.l ($3333,a0), (a0) uses Op20a8 ---------- -Op20a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20b0] move.l ($33,a0,d3.w*2), (a0) uses Op20b0 ---------- -Op20b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20b8] move.l $3333.w, (a0) uses Op20b8 ---------- -Op20b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20b9] move.l $33333333.l, (a0) uses Op20b9 ---------- -Op20b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20ba] move.l ($3333,pc), (a0); =3335 uses Op20ba ---------- -Op20ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20bb] move.l ($33,pc,d3.w*2), (a0); =35 uses Op20bb ---------- -Op20bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20bc] move.l #$33333333, (a0) uses Op20bc ---------- -Op20bc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20d0] move.l (a0), (a0)+ uses Op20d0 ---------- -Op20d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20d8] move.l (a0)+, (a0)+ uses Op20d8 ---------- -Op20d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20e0] move.l -(a0), (a0)+ uses Op20e0 ---------- -Op20e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20e8] move.l ($3333,a0), (a0)+ uses Op20e8 ---------- -Op20e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20f0] move.l ($33,a0,d3.w*2), (a0)+ uses Op20f0 ---------- -Op20f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20f8] move.l $3333.w, (a0)+ uses Op20f8 ---------- -Op20f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20f9] move.l $33333333.l, (a0)+ uses Op20f9 ---------- -Op20f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20fa] move.l ($3333,pc), (a0)+; =3335 uses Op20fa ---------- -Op20fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20fb] move.l ($33,pc,d3.w*2), (a0)+; =35 uses Op20fb ---------- -Op20fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [20fc] move.l #$33333333, (a0)+ uses Op20fc ---------- -Op20fc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2100] move.l d0, -(a0) uses Op2100 ---------- -Op2100: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2110] move.l (a0), -(a0) uses Op2110 ---------- -Op2110: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2118] move.l (a0)+, -(a0) uses Op2118 ---------- -Op2118: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2120] move.l -(a0), -(a0) uses Op2120 ---------- -Op2120: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2128] move.l ($3333,a0), -(a0) uses Op2128 ---------- -Op2128: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2130] move.l ($33,a0,d3.w*2), -(a0) uses Op2130 ---------- -Op2130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2138] move.l $3333.w, -(a0) uses Op2138 ---------- -Op2138: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2139] move.l $33333333.l, -(a0) uses Op2139 ---------- -Op2139: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [213a] move.l ($3333,pc), -(a0); =3335 uses Op213a ---------- -Op213a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [213b] move.l ($33,pc,d3.w*2), -(a0); =35 uses Op213b ---------- -Op213b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [213c] move.l #$33333333, -(a0) uses Op213c ---------- -Op213c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r8: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r8,[r7,r2,lsr #7] - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,r2,lsr #7] - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a0)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2140] move.l d0, ($3333,a0) uses Op2140 ---------- -Op2140: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2150] move.l (a0), ($3333,a0) uses Op2150 ---------- -Op2150: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2158] move.l (a0)+, ($3333,a0) uses Op2158 ---------- -Op2158: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2160] move.l -(a0), ($3333,a0) uses Op2160 ---------- -Op2160: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2168] move.l ($3333,a0), ($3333,a0) uses Op2168 ---------- -Op2168: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2170] move.l ($33,a0,d3.w*2), ($3333,a0) uses Op2170 ---------- -Op2170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2178] move.l $3333.w, ($3333,a0) uses Op2178 ---------- -Op2178: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2179] move.l $33333333.l, ($3333,a0) uses Op2179 ---------- -Op2179: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [217a] move.l ($3333,pc), ($3333,a0); =3335 uses Op217a ---------- -Op217a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [217b] move.l ($33,pc,d3.w*2), ($3333,a0); =35 uses Op217b ---------- -Op217b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [217c] move.l #$33333333, ($3333,a0) uses Op217c ---------- -Op217c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2180] move.l d0, ($33,a0,d3.w*2) uses Op2180 ---------- -Op2180: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2190] move.l (a0), ($33,a0,d3.w*2) uses Op2190 ---------- -Op2190: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2198] move.l (a0)+, ($33,a0,d3.w*2) uses Op2198 ---------- -Op2198: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21a0] move.l -(a0), ($33,a0,d3.w*2) uses Op21a0 ---------- -Op21a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21a8] move.l ($3333,a0), ($33,a0,d3.w*2) uses Op21a8 ---------- -Op21a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21b0] move.l ($33,a0,d3.w*2), ($33,a0,d3.w*2) uses Op21b0 ---------- -Op21b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21b8] move.l $3333.w, ($33,a0,d3.w*2) uses Op21b8 ---------- -Op21b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21b9] move.l $33333333.l, ($33,a0,d3.w*2) uses Op21b9 ---------- -Op21b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21ba] move.l ($3333,pc), ($33,a0,d3.w*2); =3335 uses Op21ba ---------- -Op21ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21bb] move.l ($33,pc,d3.w*2), ($33,a0,d3.w*2); =35 uses Op21bb ---------- -Op21bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21bc] move.l #$33333333, ($33,a0,d3.w*2) uses Op21bc ---------- -Op21bc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21c0] move.l d0, $3333.w uses Op21c0 ---------- -Op21c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21d0] move.l (a0), $3333.w uses Op21d0 ---------- -Op21d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21d8] move.l (a0)+, $3333.w uses Op21d8 ---------- -Op21d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21e0] move.l -(a0), $3333.w uses Op21e0 ---------- -Op21e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21e8] move.l ($3333,a0), $3333.w uses Op21e8 ---------- -Op21e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21f0] move.l ($33,a0,d3.w*2), $3333.w uses Op21f0 ---------- -Op21f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21f8] move.l $3333.w, $3333.w uses Op21f8 ---------- -Op21f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21f9] move.l $33333333.l, $3333.w uses Op21f9 ---------- -Op21f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21fa] move.l ($3333,pc), $3333.w; =3335 uses Op21fa ---------- -Op21fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21fb] move.l ($33,pc,d3.w*2), $3333.w; =35 uses Op21fb ---------- -Op21fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [21fc] move.l #$33333333, $3333.w uses Op21fc ---------- -Op21fc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23c0] move.l d0, $33333333.l uses Op23c0 ---------- -Op23c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23d0] move.l (a0), $33333333.l uses Op23d0 ---------- -Op23d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23d8] move.l (a0)+, $33333333.l uses Op23d8 ---------- -Op23d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23e0] move.l -(a0), $33333333.l uses Op23e0 ---------- -Op23e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23e8] move.l ($3333,a0), $33333333.l uses Op23e8 ---------- -Op23e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23f0] move.l ($33,a0,d3.w*2), $33333333.l uses Op23f0 ---------- -Op23f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23f8] move.l $3333.w, $33333333.l uses Op23f8 ---------- -Op23f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23f9] move.l $33333333.l, $33333333.l uses Op23f9 ---------- -Op23f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#36 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23fa] move.l ($3333,pc), $33333333.l; =3335 uses Op23fa ---------- -Op23fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#32 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23fb] move.l ($33,pc,d3.w*2), $33333333.l; =35 uses Op23fb ---------- -Op23fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [23fc] move.l #$33333333, $33333333.l uses Op23fc ---------- -Op23fc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ec0] move.l d0, (a7)+ uses Op2ec0 ---------- -Op2ec0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ed0] move.l (a0), (a7)+ uses Op2ed0 ---------- -Op2ed0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ed8] move.l (a0)+, (a7)+ uses Op2ed8 ---------- -Op2ed8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ee0] move.l -(a0), (a7)+ uses Op2ee0 ---------- -Op2ee0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ee8] move.l ($3333,a0), (a7)+ uses Op2ee8 ---------- -Op2ee8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ef0] move.l ($33,a0,d3.w*2), (a7)+ uses Op2ef0 ---------- -Op2ef0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ef8] move.l $3333.w, (a7)+ uses Op2ef8 ---------- -Op2ef8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2ef9] move.l $33333333.l, (a7)+ uses Op2ef9 ---------- -Op2ef9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2efa] move.l ($3333,pc), (a7)+; =3335 uses Op2efa ---------- -Op2efa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2efb] move.l ($33,pc,d3.w*2), (a7)+; =35 uses Op2efb ---------- -Op2efb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2efc] move.l #$33333333, (a7)+ uses Op2efc ---------- -Op2efc: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f00] move.l d0, -(a7) uses Op2f00 ---------- -Op2f00: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsl #2] - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f10] move.l (a0), -(a7) uses Op2f10 ---------- -Op2f10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f18] move.l (a0)+, -(a7) uses Op2f18 ---------- -Op2f18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f20] move.l -(a0), -(a7) uses Op2f20 ---------- -Op2f20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f28] move.l ($3333,a0), -(a7) uses Op2f28 ---------- -Op2f28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f30] move.l ($33,a0,d3.w*2), -(a7) uses Op2f30 ---------- -Op2f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f38] move.l $3333.w, -(a7) uses Op2f38 ---------- -Op2f38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f39] move.l $33333333.l, -(a7) uses Op2f39 ---------- -Op2f39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f3a] move.l ($3333,pc), -(a7); =3335 uses Op2f3a ---------- -Op2f3a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f3b] move.l ($33,pc,d3.w*2), -(a7); =35 uses Op2f3b ---------- -Op2f3b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - movs r1,r0 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [2f3c] move.l #$33333333, -(a7) uses Op2f3c ---------- -Op2f3c: -;@ EaCalc : Get '#$33333333' into r1: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r1,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r1) into r1: - tst r1,r1 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r8: - ldr r8,[r7,#0x3c] ;@ A7 - sub r8,r8,#4 ;@ Pre-decrement An - str r8,[r7,#0x3c] ;@ A7 - mov r11,r1 - add r0,r8,#2 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - -;@ EaWrite: Write r11 into '-(a7)' (address in r8): - mov r1,r11,lsr #16 - add lr,pc,#4 - mov r0,r8 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3010] move.w (a0), d0 uses Op3010 ---------- -Op3010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3020] move.w -(a0), d0 uses Op3020 ---------- -Op3020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3030] move.w ($33,a0,d3.w*2), d0 uses Op3030 ---------- -Op3030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3038] move.w $3333.w, d0 uses Op3038 ---------- -Op3038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [303a] move.w ($3333,pc), d0; =3335 uses Op303a ---------- -Op303a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [303b] move.w ($33,pc,d3.w*2), d0; =35 uses Op303b ---------- -Op303b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [303c] move.w #$3333, d0 uses Op303c ---------- -Op303c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - mov r0,r0,lsr #7 -;@ EaWrite: r1 into register[r0]: - mov r1,r1,lsr #16 - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3050] movea.w (a0), a0 uses Op3050 ---------- -Op3050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3058] movea.w (a0)+, a0 uses Op3058 ---------- -Op3058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3060] movea.w -(a0), a0 uses Op3060 ---------- -Op3060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3068] movea.w ($3333,a0), a0 uses Op3068 ---------- -Op3068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3070] movea.w ($33,a0,d3.w*2), a0 uses Op3070 ---------- -Op3070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3078] movea.w $3333.w, a0 uses Op3078 ---------- -Op3078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3079] movea.w $33333333.l, a0 uses Op3079 ---------- -Op3079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [307a] movea.w ($3333,pc), a0; =3335 uses Op307a ---------- -Op307a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [307b] movea.w ($33,pc,d3.w*2), a0; =35 uses Op307b ---------- -Op307b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r1,r0,asl #16 - mov r1,r1,asr #16 ;@ sign extend - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [307c] movea.w #$3333, a0 uses Op307c ---------- -Op307c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x1e00 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3090] move.w (a0), (a0) uses Op3090 ---------- -Op3090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3098] move.w (a0)+, (a0) uses Op3098 ---------- -Op3098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30a0] move.w -(a0), (a0) uses Op30a0 ---------- -Op30a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30a8] move.w ($3333,a0), (a0) uses Op30a8 ---------- -Op30a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30b0] move.w ($33,a0,d3.w*2), (a0) uses Op30b0 ---------- -Op30b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30b8] move.w $3333.w, (a0) uses Op30b8 ---------- -Op30b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30b9] move.w $33333333.l, (a0) uses Op30b9 ---------- -Op30b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30ba] move.w ($3333,pc), (a0); =3335 uses Op30ba ---------- -Op30ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30bb] move.w ($33,pc,d3.w*2), (a0); =35 uses Op30bb ---------- -Op30bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30bc] move.w #$3333, (a0) uses Op30bc ---------- -Op30bc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30d8] move.w (a0)+, (a0)+ uses Op30d8 ---------- -Op30d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30e0] move.w -(a0), (a0)+ uses Op30e0 ---------- -Op30e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30e8] move.w ($3333,a0), (a0)+ uses Op30e8 ---------- -Op30e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30f0] move.w ($33,a0,d3.w*2), (a0)+ uses Op30f0 ---------- -Op30f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30f8] move.w $3333.w, (a0)+ uses Op30f8 ---------- -Op30f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30f9] move.w $33333333.l, (a0)+ uses Op30f9 ---------- -Op30f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30fa] move.w ($3333,pc), (a0)+; =3335 uses Op30fa ---------- -Op30fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30fb] move.w ($33,pc,d3.w*2), (a0)+; =35 uses Op30fb ---------- -Op30fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [30fc] move.w #$3333, (a0)+ uses Op30fc ---------- -Op30fc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3100] move.w d0, -(a0) uses Op3100 ---------- -Op3100: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3110] move.w (a0), -(a0) uses Op3110 ---------- -Op3110: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3118] move.w (a0)+, -(a0) uses Op3118 ---------- -Op3118: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3120] move.w -(a0), -(a0) uses Op3120 ---------- -Op3120: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3128] move.w ($3333,a0), -(a0) uses Op3128 ---------- -Op3128: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3130] move.w ($33,a0,d3.w*2), -(a0) uses Op3130 ---------- -Op3130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3138] move.w $3333.w, -(a0) uses Op3138 ---------- -Op3138: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3139] move.w $33333333.l, -(a0) uses Op3139 ---------- -Op3139: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [313a] move.w ($3333,pc), -(a0); =3335 uses Op313a ---------- -Op313a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [313b] move.w ($33,pc,d3.w*2), -(a0); =35 uses Op313b ---------- -Op313b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [313c] move.w #$3333, -(a0) uses Op313c ---------- -Op313c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsr #7] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3140] move.w d0, ($3333,a0) uses Op3140 ---------- -Op3140: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3150] move.w (a0), ($3333,a0) uses Op3150 ---------- -Op3150: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3158] move.w (a0)+, ($3333,a0) uses Op3158 ---------- -Op3158: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3160] move.w -(a0), ($3333,a0) uses Op3160 ---------- -Op3160: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3168] move.w ($3333,a0), ($3333,a0) uses Op3168 ---------- -Op3168: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3170] move.w ($33,a0,d3.w*2), ($3333,a0) uses Op3170 ---------- -Op3170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3178] move.w $3333.w, ($3333,a0) uses Op3178 ---------- -Op3178: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3179] move.w $33333333.l, ($3333,a0) uses Op3179 ---------- -Op3179: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [317a] move.w ($3333,pc), ($3333,a0); =3335 uses Op317a ---------- -Op317a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [317b] move.w ($33,pc,d3.w*2), ($3333,a0); =35 uses Op317b ---------- -Op317b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [317c] move.w #$3333, ($3333,a0) uses Op317c ---------- -Op317c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x1e00 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3190] move.w (a0), ($33,a0,d3.w*2) uses Op3190 ---------- -Op3190: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3198] move.w (a0)+, ($33,a0,d3.w*2) uses Op3198 ---------- -Op3198: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31a0] move.w -(a0), ($33,a0,d3.w*2) uses Op31a0 ---------- -Op31a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31a8] move.w ($3333,a0), ($33,a0,d3.w*2) uses Op31a8 ---------- -Op31a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31b0] move.w ($33,a0,d3.w*2), ($33,a0,d3.w*2) uses Op31b0 ---------- -Op31b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31b8] move.w $3333.w, ($33,a0,d3.w*2) uses Op31b8 ---------- -Op31b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31b9] move.w $33333333.l, ($33,a0,d3.w*2) uses Op31b9 ---------- -Op31b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31ba] move.w ($3333,pc), ($33,a0,d3.w*2); =3335 uses Op31ba ---------- -Op31ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31bb] move.w ($33,pc,d3.w*2), ($33,a0,d3.w*2); =35 uses Op31bb ---------- -Op31bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31bc] move.w #$3333, ($33,a0,d3.w*2) uses Op31bc ---------- -Op31bc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x1e00 - orr r2,r2,#0x1000 ;@ A0-7 - mov r2,r2,lsr #9 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31c0] move.w d0, $3333.w uses Op31c0 ---------- -Op31c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31d0] move.w (a0), $3333.w uses Op31d0 ---------- -Op31d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31d8] move.w (a0)+, $3333.w uses Op31d8 ---------- -Op31d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31e0] move.w -(a0), $3333.w uses Op31e0 ---------- -Op31e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31e8] move.w ($3333,a0), $3333.w uses Op31e8 ---------- -Op31e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31f0] move.w ($33,a0,d3.w*2), $3333.w uses Op31f0 ---------- -Op31f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31f8] move.w $3333.w, $3333.w uses Op31f8 ---------- -Op31f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31f9] move.w $33333333.l, $3333.w uses Op31f9 ---------- -Op31f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31fa] move.w ($3333,pc), $3333.w; =3335 uses Op31fa ---------- -Op31fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31fb] move.w ($33,pc,d3.w*2), $3333.w; =35 uses Op31fb ---------- -Op31fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [31fc] move.w #$3333, $3333.w uses Op31fc ---------- -Op31fc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33c0] move.w d0, $33333333.l uses Op33c0 ---------- -Op33c0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33d0] move.w (a0), $33333333.l uses Op33d0 ---------- -Op33d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33e0] move.w -(a0), $33333333.l uses Op33e0 ---------- -Op33e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33e8] move.w ($3333,a0), $33333333.l uses Op33e8 ---------- -Op33e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33f0] move.w ($33,a0,d3.w*2), $33333333.l uses Op33f0 ---------- -Op33f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33f8] move.w $3333.w, $33333333.l uses Op33f8 ---------- -Op33f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33f9] move.w $33333333.l, $33333333.l uses Op33f9 ---------- -Op33f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33fa] move.w ($3333,pc), $33333333.l; =3335 uses Op33fa ---------- -Op33fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33fb] move.w ($33,pc,d3.w*2), $33333333.l; =35 uses Op33fb ---------- -Op33fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [33fc] move.w #$3333, $33333333.l uses Op33fc ---------- -Op33fc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ec0] move.w d0, (a7)+ uses Op3ec0 ---------- -Op3ec0: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ed0] move.w (a0), (a7)+ uses Op3ed0 ---------- -Op3ed0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ed8] move.w (a0)+, (a7)+ uses Op3ed8 ---------- -Op3ed8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ee0] move.w -(a0), (a7)+ uses Op3ee0 ---------- -Op3ee0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ee8] move.w ($3333,a0), (a7)+ uses Op3ee8 ---------- -Op3ee8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ef0] move.w ($33,a0,d3.w*2), (a7)+ uses Op3ef0 ---------- -Op3ef0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ef8] move.w $3333.w, (a7)+ uses Op3ef8 ---------- -Op3ef8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3ef9] move.w $33333333.l, (a7)+ uses Op3ef9 ---------- -Op3ef9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3efa] move.w ($3333,pc), (a7)+; =3335 uses Op3efa ---------- -Op3efa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3efb] move.w ($33,pc,d3.w*2), (a7)+; =35 uses Op3efb ---------- -Op3efb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3efc] move.w #$3333, (a7)+ uses Op3efc ---------- -Op3efc: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f00] move.w d0, -(a7) uses Op3f00 ---------- -Op3f00: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x000f - mov r1,r1,lsl #2 -;@ EaRead : Read register[r1] into r1: - ldrh r1,[r7,r1] - - movs r2,r1,lsl #16 - and r10,r2,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f10] move.w (a0), -(a7) uses Op3f10 ---------- -Op3f10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f18] move.w (a0)+, -(a7) uses Op3f18 ---------- -Op3f18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f20] move.w -(a0), -(a7) uses Op3f20 ---------- -Op3f20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f28] move.w ($3333,a0), -(a7) uses Op3f28 ---------- -Op3f28: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f30] move.w ($33,a0,d3.w*2), -(a7) uses Op3f30 ---------- -Op3f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f38] move.w $3333.w, -(a7) uses Op3f38 ---------- -Op3f38: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f39] move.w $33333333.l, -(a7) uses Op3f39 ---------- -Op3f39: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f3a] move.w ($3333,pc), -(a7); =3335 uses Op3f3a ---------- -Op3f3a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f3b] move.w ($33,pc,d3.w*2), -(a7); =35 uses Op3f3b ---------- -Op3f3b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r1: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - movs r1,r0,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [3f3c] move.w #$3333, -(a7) uses Op3f3c ---------- -Op3f3c: -;@ EaCalc : Get '#$3333' into r1: - ldrsh r1,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r1) into r1: - movs r1,r1,asl #16 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4000] negx.b d0 uses Op4000 ---------- -Op4000: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4010] negx.b (a0) uses Op4010 ---------- -Op4010: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4018] negx.b (a0)+ uses Op4018 ---------- -Op4018: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [401f] negx.b (a7)+ uses Op401f ---------- -Op401f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4020] negx.b -(a0) uses Op4020 ---------- -Op4020: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4027] negx.b -(a7) uses Op4027 ---------- -Op4027: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4028] negx.b ($3333,a0) uses Op4028 ---------- -Op4028: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4030] negx.b ($33,a0,d3.w*2) uses Op4030 ---------- -Op4030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4038] negx.b $3333.w uses Op4038 ---------- -Op4038: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4039] negx.b $33333333.l uses Op4039 ---------- -Op4039: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #24 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #24 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4040] negx.w d0 uses Op4040 ---------- -Op4040: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4050] negx.w (a0) uses Op4050 ---------- -Op4050: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4058] negx.w (a0)+ uses Op4058 ---------- -Op4058: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4060] negx.w -(a0) uses Op4060 ---------- -Op4060: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4068] negx.w ($3333,a0) uses Op4068 ---------- -Op4068: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4070] negx.w ($33,a0,d3.w*2) uses Op4070 ---------- -Op4070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4078] negx.w $3333.w uses Op4078 ---------- -Op4078: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4079] negx.w $33333333.l uses Op4079 ---------- -Op4079: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - mov r0,r0,asl #16 - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r1,r1,asr #16 - orreq r10,r10,#0x40000000 ;@ possily missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4080] negx.l d0 uses Op4080 ---------- -Op4080: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4090] negx.l (a0) uses Op4090 ---------- -Op4090: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4098] negx.l (a0)+ uses Op4098 ---------- -Op4098: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40a0] negx.l -(a0) uses Op40a0 ---------- -Op40a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40a8] negx.l ($3333,a0) uses Op40a8 ---------- -Op40a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40b0] negx.l ($33,a0,d3.w*2) uses Op40b0 ---------- -Op40b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40b8] negx.l $3333.w uses Op40b8 ---------- -Op40b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40b9] negx.l $33333333.l uses Op40b9 ---------- -Op40b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Negx: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r0,#0 ;@ do arithmetic - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40c0] move sr, d0 uses Op40c0 ---------- -Op40c0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f - mov r0,r0,lsl #2 -;@ EaWrite: r1 into register[r0]: - strh r1,[r7,r0] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40d0] move sr, (a0) uses Op40d0 ---------- -Op40d0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40d8] move sr, (a0)+ uses Op40d8 ---------- -Op40d8: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40e0] move sr, -(a0) uses Op40e0 ---------- -Op40e0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40e8] move sr, ($3333,a0) uses Op40e8 ---------- -Op40e8: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40f0] move sr, ($33,a0,d3.w*2) uses Op40f0 ---------- -Op40f0: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40f8] move sr, $3333.w uses Op40f8 ---------- -Op40f8: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [40f9] move sr, $33333333.l uses Op40f9 ---------- -Op40f9: - ldr r0,[r7,#0x4c] ;@ X bit - mov r1,r10,lsr #28 ;@ ____NZCV - eor r2,r1,r1,ror #1 ;@ Bit 0=C^V - tst r2,#1 ;@ 1 if C!=V - eorne r1,r1,#3 ;@ ____NZVC - - ldrb r2,[r7,#0x44] ;@ Include SR high - and r0,r0,#0x20000000 - orr r1,r1,r0,lsr #25 ;@ ___XNZVC - orr r1,r1,r2,lsl #8 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4180] chk d0, a0 uses Op4180 ---------- -Op4180: -;@ Get value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap4180 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap4180 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap4180: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#50 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4190] chk (a0), a0 uses Op4190 ---------- -Op4190: -;@ Get value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap4190 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap4190 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap4190: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4198] chk (a0)+, a0 uses Op4198 ---------- -Op4198: -;@ Get value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap4198 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap4198 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap4198: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41a0] chk -(a0), a0 uses Op41a0 ---------- -Op41a0: -;@ Get value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41a0 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41a0 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41a0: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#56 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41a8] chk ($3333,a0), a0 uses Op41a8 ---------- -Op41a8: -;@ Get value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41a8 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41a8 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41a8: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41b0] chk ($33,a0,d3.w*2), a0 uses Op41b0 ---------- -Op41b0: -;@ Get value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41b0 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41b0 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41b0: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41b8] chk $3333.w, a0 uses Op41b8 ---------- -Op41b8: -;@ Get value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41b8 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41b8 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41b8: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41b9] chk $33333333.l, a0 uses Op41b9 ---------- -Op41b9: -;@ Get value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41b9 -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41b9 -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41b9: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41ba] chk ($3333,pc), a0; =3335 uses Op41ba ---------- -Op41ba: -;@ Get value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41ba -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41ba -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41ba: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41bb] chk ($33,pc,d3.w*2), a0; =35 uses Op41bb ---------- -Op41bb: -;@ Get value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41bb -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41bb -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41bb: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41bc] chk #$33, a0 uses Op41bc ---------- -Op41bc: -;@ Get value into r0: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - movs r1,r1,asl #16 - -;@ get flags, including undocumented ones - and r3,r10,#0x80000000 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV -;@ is reg negative? - bmi chktrap41bc -;@ Do arithmetic: - cmp r1,r0 - bgt chktrap41bc -;@ old N remains - orr r10,r10,r3 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -chktrap41bc: ;@ CHK exception: - mov r0,#6 - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41d0] lea (a0), a0 uses Op41d0 ---------- -Op41d0: -;@ EaCalc : Get '(a0)' into r1: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r1,[r7,r2,lsl #2] -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41e8] lea ($3333,a0), a0 uses Op41e8 ---------- -Op41e8: -;@ EaCalc : Get '($3333,a0)' into r1: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r1,r0,r2 ;@ Add on offset -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41f8] lea $3333.w, a0 uses Op41f8 ---------- -Op41f8: -;@ EaCalc : Get '$3333.w' into r1: - ldrsh r1,[r4],#2 ;@ Fetch Absolute Short address -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41f9] lea $33333333.l, a0 uses Op41f9 ---------- -Op41f9: -;@ EaCalc : Get '$33333333.l' into r1: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r1,r0,r2,lsl #16 -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41fa] lea ($3333,pc), a0; =3335 uses Op41fa ---------- -Op41fa: -;@ EaCalc : Get '($3333,pc)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r1,r2,r0 ;@ ($nn,PC) -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [41fb] lea ($33,pc,d3.w*2), a0; =35 uses Op41fb ---------- -Op41fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r1,r2,r0 ;@ r1=Disp+PC+Rn -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0e00 - orr r0,r0,#0x1000 ;@ A0-7 -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4200] clr.b d0 uses Op4200 ---------- -Op4200: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4210] clr.b (a0) uses Op4210 ---------- -Op4210: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4218] clr.b (a0)+ uses Op4218 ---------- -Op4218: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [421f] clr.b (a7)+ uses Op421f ---------- -Op421f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4220] clr.b -(a0) uses Op4220 ---------- -Op4220: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4227] clr.b -(a7) uses Op4227 ---------- -Op4227: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4228] clr.b ($3333,a0) uses Op4228 ---------- -Op4228: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4230] clr.b ($33,a0,d3.w*2) uses Op4230 ---------- -Op4230: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4238] clr.b $3333.w uses Op4238 ---------- -Op4238: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4239] clr.b $33333333.l uses Op4239 ---------- -Op4239: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4240] clr.w d0 uses Op4240 ---------- -Op4240: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4250] clr.w (a0) uses Op4250 ---------- -Op4250: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4258] clr.w (a0)+ uses Op4258 ---------- -Op4258: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4260] clr.w -(a0) uses Op4260 ---------- -Op4260: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4268] clr.w ($3333,a0) uses Op4268 ---------- -Op4268: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4270] clr.w ($33,a0,d3.w*2) uses Op4270 ---------- -Op4270: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4278] clr.w $3333.w uses Op4278 ---------- -Op4278: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4279] clr.w $33333333.l uses Op4279 ---------- -Op4279: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4280] clr.l d0 uses Op4280 ---------- -Op4280: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4290] clr.l (a0) uses Op4290 ---------- -Op4290: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4298] clr.l (a0)+ uses Op4298 ---------- -Op4298: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42a0] clr.l -(a0) uses Op42a0 ---------- -Op42a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42a8] clr.l ($3333,a0) uses Op42a8 ---------- -Op42a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42b0] clr.l ($33,a0,d3.w*2) uses Op42b0 ---------- -Op42b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42b8] clr.l $3333.w uses Op42b8 ---------- -Op42b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [42b9] clr.l $33333333.l uses Op42b9 ---------- -Op42b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 - -;@ Clear: - mov r1,#0 - mov r10,#0x40000000 ;@ NZCV=0100 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4400] neg.b d0 uses Op4400 ---------- -Op4400: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4410] neg.b (a0) uses Op4410 ---------- -Op4410: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4418] neg.b (a0)+ uses Op4418 ---------- -Op4418: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [441f] neg.b (a7)+ uses Op441f ---------- -Op441f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4420] neg.b -(a0) uses Op4420 ---------- -Op4420: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4427] neg.b -(a7) uses Op4427 ---------- -Op4427: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4428] neg.b ($3333,a0) uses Op4428 ---------- -Op4428: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4430] neg.b ($33,a0,d3.w*2) uses Op4430 ---------- -Op4430: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4438] neg.b $3333.w uses Op4438 ---------- -Op4438: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4439] neg.b $33333333.l uses Op4439 ---------- -Op4439: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Neg: - mov r0,r0,asl #24 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #24 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4440] neg.w d0 uses Op4440 ---------- -Op4440: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4450] neg.w (a0) uses Op4450 ---------- -Op4450: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4458] neg.w (a0)+ uses Op4458 ---------- -Op4458: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4460] neg.w -(a0) uses Op4460 ---------- -Op4460: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4468] neg.w ($3333,a0) uses Op4468 ---------- -Op4468: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4470] neg.w ($33,a0,d3.w*2) uses Op4470 ---------- -Op4470: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4478] neg.w $3333.w uses Op4478 ---------- -Op4478: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4479] neg.w $33333333.l uses Op4479 ---------- -Op4479: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Neg: - mov r0,r0,asl #16 - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - mov r1,r1,asr #16 - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4480] neg.l d0 uses Op4480 ---------- -Op4480: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4490] neg.l (a0) uses Op4490 ---------- -Op4490: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4498] neg.l (a0)+ uses Op4498 ---------- -Op4498: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44a0] neg.l -(a0) uses Op44a0 ---------- -Op44a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44a8] neg.l ($3333,a0) uses Op44a8 ---------- -Op44a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44b0] neg.l ($33,a0,d3.w*2) uses Op44b0 ---------- -Op44b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44b8] neg.l $3333.w uses Op44b8 ---------- -Op44b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44b9] neg.l $33333333.l uses Op44b9 ---------- -Op44b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Neg: - rsbs r1,r0,#0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44c0] move d0, ccr uses Op44c0 ---------- -Op44c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44d0] move (a0), ccr uses Op44d0 ---------- -Op44d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44d8] move (a0)+, ccr uses Op44d8 ---------- -Op44d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44e0] move -(a0), ccr uses Op44e0 ---------- -Op44e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44e8] move ($3333,a0), ccr uses Op44e8 ---------- -Op44e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44f0] move ($33,a0,d3.w*2), ccr uses Op44f0 ---------- -Op44f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44f8] move $3333.w, ccr uses Op44f8 ---------- -Op44f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44f9] move $33333333.l, ccr uses Op44f9 ---------- -Op44f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44fa] move ($3333,pc), ccr; =3335 uses Op44fa ---------- -Op44fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44fb] move ($33,pc,d3.w*2), ccr; =35 uses Op44fb ---------- -Op44fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [44fc] move #$3333, ccr uses Op44fc ---------- -Op44fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4600] not.b d0 uses Op4600 ---------- -Op4600: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4610] not.b (a0) uses Op4610 ---------- -Op4610: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4618] not.b (a0)+ uses Op4618 ---------- -Op4618: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [461f] not.b (a7)+ uses Op461f ---------- -Op461f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4620] not.b -(a0) uses Op4620 ---------- -Op4620: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4627] not.b -(a7) uses Op4627 ---------- -Op4627: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4628] not.b ($3333,a0) uses Op4628 ---------- -Op4628: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4630] not.b ($33,a0,d3.w*2) uses Op4630 ---------- -Op4630: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4638] not.b $3333.w uses Op4638 ---------- -Op4638: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4639] not.b $33333333.l uses Op4639 ---------- -Op4639: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Not: - mov r0,r0,asl #24 - mvns r1,r0,asr #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4640] not.w d0 uses Op4640 ---------- -Op4640: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4650] not.w (a0) uses Op4650 ---------- -Op4650: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4658] not.w (a0)+ uses Op4658 ---------- -Op4658: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4660] not.w -(a0) uses Op4660 ---------- -Op4660: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4668] not.w ($3333,a0) uses Op4668 ---------- -Op4668: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4670] not.w ($33,a0,d3.w*2) uses Op4670 ---------- -Op4670: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4678] not.w $3333.w uses Op4678 ---------- -Op4678: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4679] not.w $33333333.l uses Op4679 ---------- -Op4679: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Not: - mov r0,r0,asl #16 - mvns r1,r0,asr #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4680] not.l d0 uses Op4680 ---------- -Op4680: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4690] not.l (a0) uses Op4690 ---------- -Op4690: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4698] not.l (a0)+ uses Op4698 ---------- -Op4698: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46a0] not.l -(a0) uses Op46a0 ---------- -Op46a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46a8] not.l ($3333,a0) uses Op46a8 ---------- -Op46a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46b0] not.l ($33,a0,d3.w*2) uses Op46b0 ---------- -Op46b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46b8] not.l $3333.w uses Op46b8 ---------- -Op46b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46b9] not.l $33333333.l uses Op46b9 ---------- -Op46b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Not: - mvns r1,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [46c0] move d0, sr uses Op46c0 ---------- -Op46c0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46c0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46c0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#12 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46d0] move (a0), sr uses Op46d0 ---------- -Op46d0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46d0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46d0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#16 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46d8] move (a0)+, sr uses Op46d8 ---------- -Op46d8: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46d8 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46d8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#16 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46e0] move -(a0), sr uses Op46e0 ---------- -Op46e0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46e0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46e0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#18 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46e8] move ($3333,a0), sr uses Op46e8 ---------- -Op46e8: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46e8 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46e8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46f0] move ($33,a0,d3.w*2), sr uses Op46f0 ---------- -Op46f0: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46f0 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46f0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#22 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46f8] move $3333.w, sr uses Op46f8 ---------- -Op46f8: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46f8 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46f8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46f9] move $33333333.l, sr uses Op46f9 ---------- -Op46f9: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46f9 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46f9: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#24 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46fa] move ($3333,pc), sr; =3335 uses Op46fa ---------- -Op46fa: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46fa - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46fa: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46fb] move ($33,pc,d3.w*2), sr; =35 uses Op46fb ---------- -Op46fb: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46fb - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46fb: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#22 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [46fc] move #$3333, sr uses Op46fc ---------- -Op46fc: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r1,r0,ror #8 - and r1,r1,#0xa7 ;@ only take defined bits - strb r1,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap46fc - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap46fc: - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#16 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [4800] nbcd d0 uses Op4800 ---------- -Op4800: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldrb r0,[r7,r11,lsl #2] - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4800 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - -finish4800: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4810] nbcd (a0) uses Op4810 ---------- -Op4810: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4810 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4810: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4818] nbcd (a0)+ uses Op4818 ---------- -Op4818: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4818 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4818: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [481f] nbcd (a7)+ uses Op481f ---------- -Op481f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish481f - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish481f: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4820] nbcd -(a0) uses Op4820 ---------- -Op4820: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4820 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4820: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4827] nbcd -(a7) uses Op4827 ---------- -Op4827: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4827 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4827: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4828] nbcd ($3333,a0) uses Op4828 ---------- -Op4828: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4828 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4828: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4830] nbcd ($33,a0,d3.w*2) uses Op4830 ---------- -Op4830: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4830 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4830: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4838] nbcd $3333.w uses Op4838 ---------- -Op4838: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4838 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4838: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4839] nbcd $33333333.l uses Op4839 ---------- -Op4839: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - ldr r2,[r7,#0x4c] - bic r10,r10,#0xb0000000 ;@ clear all flags, except Z - and r2,r2,#0x20000000 - rsb r1,r0,#0 ;@ do arithmetic - subs r1,r1,r2,lsr #29 ;@ X - beq finish4839 - - movs r1,r1,lsl #24 - orrmi r10,r10,#0x10000000 ;@ Undefined V behavior - orr r2,r1,r0,lsl #24 - tst r2,#0x0f000000 - andeq r1,r1,#0xf0000000 - orreq r1,r1,#0x06000000 - adds r1,r1,#0x9a000000 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z - orr r10,r10,#0x20000000 ;@ C - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - -finish4839: - str r10,[r7,#0x4c] ;@ Save X - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4850] pea (a0) uses Op4850 ---------- -Op4850: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '(a0)' into r1: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r1,[r7,r2,lsl #2] - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4868] pea ($3333,a0) uses Op4868 ---------- -Op4868: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($3333,a0)' into r1: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r1,r0,r2 ;@ Add on offset - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4870] pea ($33,a0,d3.w*2) uses Op4870 ---------- -Op4870: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($33,a0,d3.w*2)' into r1: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r1,r2,r3 ;@ r1=Disp+An+Rn - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4878] pea $3333.w uses Op4878 ---------- -Op4878: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '$3333.w' into r1: - ldrsh r1,[r4],#2 ;@ Fetch Absolute Short address - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4879] pea $33333333.l uses Op4879 ---------- -Op4879: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '$33333333.l' into r1: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r1,r0,r2,lsl #16 - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [487a] pea ($3333,pc); =3335 uses Op487a ---------- -Op487a: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($3333,pc)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r1,r2,r0 ;@ ($nn,PC) - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [487b] pea ($33,pc,d3.w*2); =35 uses Op487b ---------- -Op487b: - ldr r11,[r7,#0x3c] -;@ EaCalc : Get '($33,pc,d3.w*2)' into r1: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r1,r2,r0 ;@ r1=Disp+PC+Rn - - sub r0,r11,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4880] ext.w d0 uses Op4880 ---------- -Op4880: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - movs r0,r0,asl #24 - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r0,asr #24 - -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4890] movem.w d0-d1/d4-d5/a0-a1/a4-a5, (a0) uses Op4890 ---------- -Op4890: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4890 - -Movemloop4890: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4890 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '(a0)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4890 - -NoRegs4890: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48a0] movem.w d2-d3/d6-d7/a2-a3/a6-a7, -(a0) uses Op48a0 ---------- -Op48a0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#0x40 ;@ order reversed for -(An) - - tst r11,r11 - beq NoRegs48a0 - -Movemloop48a0: - add r4,r4,#-4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48a0 - - sub r6,r6,#2 ;@ Pre-decrement address - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '-(a0)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48a0 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0007 - orr r0,r0,#0x8 ;@ A0-7 -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs48a0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48a8] movem.w d0-d1/d4-d5/a0-a1/a4-a5, ($3333,a0) uses Op48a8 ---------- -Op48a8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48a8 - -Movemloop48a8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48a8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($3333,a0)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48a8 - -NoRegs48a8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48b0] movem.w d0-d1/d4-d5/a0-a1/a4-a5, ($33,a0,d3.w*2) uses Op48b0 ---------- -Op48b0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48b0 - -Movemloop48b0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48b0 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48b0 - -NoRegs48b0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48b8] movem.w d0-d1/d4-d5/a0-a1/a4-a5, $3333.w uses Op48b8 ---------- -Op48b8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48b8 - -Movemloop48b8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48b8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$3333.w' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48b8 - -NoRegs48b8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48b9] movem.w d0-d1/d4-d5/a0-a1/a4-a5, $33333333.l uses Op48b9 ---------- -Op48b9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48b9 - -Movemloop48b9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48b9 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$33333333.l' (address in r6): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop48b9 - -NoRegs48b9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48c0] ext.l d0 uses Op48c0 ---------- -Op48c0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - movs r0,r0,asl #16 - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [48d0] movem.l d0-d1/d4-d5/a0-a1/a4-a5, (a0) uses Op48d0 ---------- -Op48d0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48d0 - -Movemloop48d0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48d0 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '(a0)' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48d0 - -NoRegs48d0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48e0] movem.l d2-d3/d6-d7/a2-a3/a6-a7, -(a0) uses Op48e0 ---------- -Op48e0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#0x40 ;@ order reversed for -(An) - - tst r11,r11 - beq NoRegs48e0 - -Movemloop48e0: - add r4,r4,#-4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48e0 - - sub r6,r6,#4 ;@ Pre-decrement address - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An - add r0,r6,#2 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldr r1,[r7,r4] ;@ Load value from Dn/An - mov r0,r6 -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - mov r1,r1,lsr #16 - mov lr,pc - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48e0 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x0007 - orr r0,r0,#0x8 ;@ A0-7 -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs48e0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48e8] movem.l d0-d1/d4-d5/a0-a1/a4-a5, ($3333,a0) uses Op48e8 ---------- -Op48e8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48e8 - -Movemloop48e8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48e8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($3333,a0)' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48e8 - -NoRegs48e8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48f0] movem.l d0-d1/d4-d5/a0-a1/a4-a5, ($33,a0,d3.w*2) uses Op48f0 ---------- -Op48f0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48f0 - -Movemloop48f0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48f0 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48f0 - -NoRegs48f0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48f8] movem.l d0-d1/d4-d5/a0-a1/a4-a5, $3333.w uses Op48f8 ---------- -Op48f8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48f8 - -Movemloop48f8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48f8 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$3333.w' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48f8 - -NoRegs48f8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [48f9] movem.l d0-d1/d4-d5/a0-a1/a4-a5, $33333333.l uses Op48f9 ---------- -Op48f9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs48f9 - -Movemloop48f9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop48f9 - - ;@ Copy register to memory: - ldr r1,[r7,r4] ;@ Load value from Dn/An -;@ EaWrite: Write r1 into '$33333333.l' (address in r6): - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop48f9 - -NoRegs48f9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4a00] tst.b d0 uses Op4a00 ---------- -Op4a00: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a10] tst.b (a0) uses Op4a10 ---------- -Op4a10: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a18] tst.b (a0)+ uses Op4a18 ---------- -Op4a18: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a1f] tst.b (a7)+ uses Op4a1f ---------- -Op4a1f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a20] tst.b -(a0) uses Op4a20 ---------- -Op4a20: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a27] tst.b -(a7) uses Op4a27 ---------- -Op4a27: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a30] tst.b ($33,a0,d3.w*2) uses Op4a30 ---------- -Op4a30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r0,r0,asl #24 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a40] tst.w d0 uses Op4a40 ---------- -Op4a40: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f - mov r0,r0,lsl #2 -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0] - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a50] tst.w (a0) uses Op4a50 ---------- -Op4a50: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a58] tst.w (a0)+ uses Op4a58 ---------- -Op4a58: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a60] tst.w -(a0) uses Op4a60 ---------- -Op4a60: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a68] tst.w ($3333,a0) uses Op4a68 ---------- -Op4a68: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a70] tst.w ($33,a0,d3.w*2) uses Op4a70 ---------- -Op4a70: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a78] tst.w $3333.w uses Op4a78 ---------- -Op4a78: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - movs r0,r0,asl #16 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a80] tst.l d0 uses Op4a80 ---------- -Op4a80: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a90] tst.l (a0) uses Op4a90 ---------- -Op4a90: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4a98] tst.l (a0)+ uses Op4a98 ---------- -Op4a98: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4aa0] tst.l -(a0) uses Op4aa0 ---------- -Op4aa0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4aa8] tst.l ($3333,a0) uses Op4aa8 ---------- -Op4aa8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ab0] tst.l ($33,a0,d3.w*2) uses Op4ab0 ---------- -Op4ab0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ab8] tst.l $3333.w uses Op4ab8 ---------- -Op4ab8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ab9] tst.l $33333333.l uses Op4ab9 ---------- -Op4ab9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - tst r0,r0 - - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ac0] tas d0 uses Op4ac0 ---------- -Op4ac0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsl #2] - movs r1,r1,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ad0] tas (a0) uses Op4ad0 ---------- -Op4ad0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ad8] tas (a0)+ uses Op4ad8 ---------- -Op4ad8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4adf] tas (a7)+ uses Op4adf ---------- -Op4adf: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ae0] tas -(a0) uses Op4ae0 ---------- -Op4ae0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ae7] tas -(a7) uses Op4ae7 ---------- -Op4ae7: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ae8] tas ($3333,a0) uses Op4ae8 ---------- -Op4ae8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4af0] tas ($33,a0,d3.w*2) uses Op4af0 ---------- -Op4af0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4af8] tas $3333.w uses Op4af8 ---------- -Op4af8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4af9] tas $33333333.l uses Op4af9 ---------- -Op4af9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r1: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - movs r1,r0,asl #24 - - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - - orr r1,r1,#0x80000000 ;@ set bit7 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4c90] movem.w (a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4c90 ---------- -Op4c90: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4c90 - -Movemloop4c90: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4c90 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4c90 - -NoRegs4c90: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4c98] movem.w (a0)+, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4c98 ---------- -Op4c98: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4c98 - -Movemloop4c98: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4c98 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)+' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4c98 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs4c98: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4ca8] movem.w ($3333,a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4ca8 ---------- -Op4ca8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4ca8 - -Movemloop4ca8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4ca8 - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4ca8 - -NoRegs4ca8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cb0] movem.w ($33,a0,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cb0 ---------- -Op4cb0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cb0 - -Movemloop4cb0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cb0 - - ;@ Copy memory to register: -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cb0 - -NoRegs4cb0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cb8] movem.w $3333.w, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cb8 ---------- -Op4cb8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cb8 - -Movemloop4cb8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cb8 - - ;@ Copy memory to register: -;@ EaRead : Read '$3333.w' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cb8 - -NoRegs4cb8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cb9] movem.w $33333333.l, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cb9 ---------- -Op4cb9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cb9 - -Movemloop4cb9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cb9 - - ;@ Copy memory to register: -;@ EaRead : Read '$33333333.l' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cb9 - -NoRegs4cb9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cba] movem.w ($3333,pc), d0-d1/d4-d5/a0-a1/a4-a5; =3337 uses Op4cba ---------- -Op4cba: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,pc)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r6,r2,r0 ;@ ($nn,PC) - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cba - -Movemloop4cba: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cba - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,pc)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cba - -NoRegs4cba: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cbb] movem.w ($33,pc,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5; =37 uses Op4cbb ---------- -Op4cbb: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r6,r2,r0 ;@ r6=Disp+PC+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cbb - -Movemloop4cbb: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cbb - - ;@ Copy memory to register: -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - mov r0,r0,asl #16 - mov r0,r0,asr #16 ;@ sign extend - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#2 ;@ Post-increment address - sub r5,r5,#4 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cbb - -NoRegs4cbb: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cd0] movem.l (a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cd0 ---------- -Op4cd0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cd0 - -Movemloop4cd0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cd0 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cd0 - -NoRegs4cd0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cd8] movem.l (a0)+, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cd8 ---------- -Op4cd8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '(a0)' into r6: - and r2,r8,#0x000f - ldr r6,[r7,r2,lsl #2] - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cd8 - -Movemloop4cd8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cd8 - - ;@ Copy memory to register: -;@ EaRead : Read '(a0)+' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cd8 - -;@ Write back address: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r6 into register[r0]: - str r6,[r7,r0,lsl #2] - -NoRegs4cd8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4ce8] movem.l ($3333,a0), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4ce8 ---------- -Op4ce8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,a0)' into r6: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r6,r0,r2 ;@ Add on offset - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4ce8 - -Movemloop4ce8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4ce8 - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,a0)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4ce8 - -NoRegs4ce8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cf0] movem.l ($33,a0,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cf0 ---------- -Op4cf0: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r6: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r6,r2,r3 ;@ r6=Disp+An+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cf0 - -Movemloop4cf0: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cf0 - - ;@ Copy memory to register: -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cf0 - -NoRegs4cf0: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cf8] movem.l $3333.w, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cf8 ---------- -Op4cf8: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$3333.w' into r6: - ldrsh r6,[r4],#2 ;@ Fetch Absolute Short address - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cf8 - -Movemloop4cf8: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cf8 - - ;@ Copy memory to register: -;@ EaRead : Read '$3333.w' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cf8 - -NoRegs4cf8: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cf9] movem.l $33333333.l, d0-d1/d4-d5/a0-a1/a4-a5 uses Op4cf9 ---------- -Op4cf9: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '$33333333.l' into r6: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r6,r0,r2,lsl #16 - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cf9 - -Movemloop4cf9: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cf9 - - ;@ Copy memory to register: -;@ EaRead : Read '$33333333.l' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cf9 - -NoRegs4cf9: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cfa] movem.l ($3333,pc), d0-d1/d4-d5/a0-a1/a4-a5; =3337 uses Op4cfa ---------- -Op4cfa: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($3333,pc)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r6,r2,r0 ;@ ($nn,PC) - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cfa - -Movemloop4cfa: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cfa - - ;@ Copy memory to register: -;@ EaRead : Read '($3333,pc)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cfa - -NoRegs4cfa: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4cfb] movem.l ($33,pc,d3.w*2), d0-d1/d4-d5/a0-a1/a4-a5; =37 uses Op4cfb ---------- -Op4cfb: - ldrh r11,[r4],#2 ;@ r11=register mask - -;@ Get the address into r6: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r6: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r6,r2,r0 ;@ r6=Disp+PC+Rn - str r4,[r7,#0x40] ;@ Save PC -;@ r4=Register Index*4: - mov r4,#-4 - - tst r11,r11 - beq NoRegs4cfb - -Movemloop4cfb: - add r4,r4,#4 ;@ r4=Next Register - movs r11,r11,lsr #1 - bcc Movemloop4cfb - - ;@ Copy memory to register: -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r6) into r0: - add lr,pc,#4 - mov r0,r6 - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - - str r0,[r7,r4] ;@ Save value into Dn/An - add r6,r6,#4 ;@ Post-increment address - sub r5,r5,#8 ;@ Take some cycles - tst r11,r11 - bne Movemloop4cfb - -NoRegs4cfb: - ldr r4,[r7,#0x40] - ldr r6,[r7,#0x54] ;@ restore Opcode Jump table - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [4e40] trap #0 uses Op4e40 ---------- -Op4e40: - and r0,r8,#0xf ;@ Get trap number - orr r0,r0,#0x20 ;@ 32+n - bl Exception - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#38 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e50] link a0,#$3333 uses Op4e50 ---------- -Op4e50: -;@ Get An -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - orr r11,r11,#0x8 ;@ A0-7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsl #2] - - ldr r0,[r7,#0x3c] ;@ Get A7 - sub r0,r0,#4 ;@ A7-=4 - mov r8,r0 ;@ abuse r8 - -;@ Write An to Stack - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Save to An -;@ EaWrite: r8 into register[r11]: - str r8,[r7,r11,lsl #2] - -;@ Get offset: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - add r8,r8,r0 ;@ Add offset to A7 - str r8,[r7,#0x3c] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e57] link a7,#$3333 uses Op4e57 ---------- -Op4e57: - ldr r0,[r7,#0x3c] ;@ Get A7 - sub r0,r0,#4 ;@ A7-=4 - mov r8,r0 ;@ abuse r8 - mov r1,r0 - -;@ Write An to Stack - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler -;@ Save to An -;@ Get offset: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - - add r8,r8,r0 ;@ Add offset to A7 - str r8,[r7,#0x3c] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e58] unlk a0 uses Op4e58 ---------- -Op4e58: -;@ Get An -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - add r8,r0,#4 ;@ A7+=4, abuse r8 - -;@ Pop An from stack: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - str r8,[r7,#0x3c] ;@ Save A7 - -;@ An = value from stack: -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e60] move a0, usp uses Op4e60 ---------- -Op4e60: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f - orr r0,r0,#0x8 ;@ A0-7 -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - - str r0,[r7,#0x48] ;@ Put in USP - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e68] move usp, a0 uses Op4e68 ---------- -Op4e68: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - - ldr r1,[r7,#0x48] ;@ Get from USP - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - str r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e70] reset uses Op4e70 ---------- -Op4e70: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - - str r4,[r7,#0x40] ;@ Save PC - mov r1,r10,lsr #28 - strb r1,[r7,#0x46] ;@ Save Flags (NZCV) - str r5,[r7,#0x5c] ;@ Save Cycles - ldr r11,[r7,#0x90] ;@ ResetCallback - tst r11,r11 - movne lr,pc - bxne r11 ;@ call ResetCallback if it is defined - ldrb r10,[r7,#0x46] ;@ r10 = Load Flags (NZCV) - ldr r5,[r7,#0x5c] ;@ Load Cycles - ldr r4,[r7,#0x40] ;@ Load PC - mov r10,r10,lsl #28 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#132 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e72] stop uses Op4e72 ---------- -Op4e72: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - - ldrh r0,[r4],#2 ;@ Fetch the immediate - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r0,r0,ror #8 - and r0,r0,#0xa7 ;@ only take defined bits - strb r0,[r7,#0x44] ;@ Store SR high - -;@ A7 <-> OSP? - eor r0,r0,r11 - tst r0,#0x20 - beq no_sp_swap4e72 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap4e72: - - ldr r0,[r7,#0x58] - mov r5,#0 ;@ eat cycles - orr r0,r0,#1 ;@ stopped - str r0,[r7,#0x58] - - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e73] rte uses Op4e73 ---------- -Op4e73: - ldr r11,[r7,#0x44] ;@ Get SR high - tst r11,#0x20 ;@ Check we are in supervisor mode - beq WrongPrivilegeMode ;@ No - -;@ Pop SR: - ldr r0,[r7,#0x3c] - add r1,r0,#2 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - mov r0,r0,ror #8 - and r0,r0,#0xa7 ;@ only take defined bits - strb r0,[r7,#0x44] ;@ Store SR high - -;@ Pop PC: - ldr r0,[r7,#0x3c] - add r1,r0,#4 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r1,[r7,#0x60] ;@ Get Memory base - add r0,r0,r1 ;@ Memory Base+PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - ldr r1,[r7,#0x44] ;@ reload SR high -;@ A7 <-> OSP? - eor r0,r1,r11 - tst r0,#0x20 - beq no_sp_swap4e73 - ;@ swap OSP and A7: - ldr r11,[r7,#0x3C] ;@ Get A7 - ldr r0, [r7,#0x48] ;@ Get OSP - str r11,[r7,#0x48] - str r0, [r7,#0x3C] -no_sp_swap4e73: - ldr r1,[r7,#0x58] - bic r1,r1,#0x0c ;@ clear 'not processing instruction' and 'doing addr error' bits - str r1,[r7,#0x58] - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - ldr r1,[r7,#0x44] - subs r5,r5,#20 ;@ Subtract cycles -;@ CheckTrace: - tst r1,#0x80 - bne CycloneDoTraceWithChecks - cmp r5,#0 - ble CycloneEnd -;@ CheckInterrupt: - movs r0,r1,lsr #24 ;@ Get IRQ level - ldreq pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - cmp r0,#6 ;@ irq>6 ? - andle r1,r1,#7 ;@ Get interrupt mask - cmple r0,r1 ;@ irq<=6: Is irq<=mask ? - ldrle pc,[r6,r8,asl #2] ;@ Jump to next opcode handler - b CycloneDoInterruptGoBack - -;@ ---------- [4e76] trapv uses Op4e76 ---------- -Op4e76: - tst r10,#0x10000000 - subne r5,r5,#34 - movne r0,#7 ;@ TRAPV exception - blne Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e77] rtr uses Op4e77 ---------- -Op4e77: -;@ Pop SR: - ldr r0,[r7,#0x3c] - add r1,r0,#2 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - eor r1,r0,r0,ror #1 ;@ Bit 0=C^V - mov r2,r0,lsl #25 - tst r1,#1 ;@ 1 if C!=V - eorne r0,r0,#3 ;@ ___XNZCV - str r2,[r7,#0x4c] ;@ Store X bit - mov r10,r0,lsl #28 ;@ r10=NZCV... - -;@ Pop PC: - ldr r0,[r7,#0x3c] - add r1,r0,#4 ;@ Postincrement A7 - str r1,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - ldr r1,[r7,#0x60] ;@ Get Memory base - add r0,r0,r1 ;@ Memory Base+PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4e90] jsr (a0) uses Op4e90 ---------- -Op4e90: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '(a0)' into r12: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r12,[r7,r2,lsl #2] -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ea8] jsr ($3333,a0) uses Op4ea8 ---------- -Op4ea8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,a0)' into r12: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r12,r0,r2 ;@ Add on offset -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eb0] jsr ($33,a0,d3.w*2) uses Op4eb0 ---------- -Op4eb0: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r12: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r12,r2,r3 ;@ r12=Disp+An+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eb8] jsr $3333.w uses Op4eb8 ---------- -Op4eb8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$3333.w' into r12: - ldrsh r12,[r4],#2 ;@ Fetch Absolute Short address -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eb9] jsr $33333333.l uses Op4eb9 ---------- -Op4eb9: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$33333333.l' into r12: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r12,r0,r2,lsl #16 -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4eba] jsr ($3333,pc); =3335 uses Op4eba ---------- -Op4eba: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,pc)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r12,r2,r0 ;@ ($nn,PC) -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ebb] jsr ($33,pc,d3.w*2); =35 uses Op4ebb ---------- -Op4ebb: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r12,r2,r0 ;@ r12=Disp+PC+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - ldr r2,[r7,#0x3c] - sub r1,r4,r11 ;@ r1 = Old PC - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 -;@ Push old PC onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ed0] jmp (a0) uses Op4ed0 ---------- -Op4ed0: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '(a0)' into r12: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r12,[r7,r2,lsl #2] -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ee8] jmp ($3333,a0) uses Op4ee8 ---------- -Op4ee8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,a0)' into r12: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r12,r0,r2 ;@ Add on offset -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ef0] jmp ($33,a0,d3.w*2) uses Op4ef0 ---------- -Op4ef0: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r12: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r12,r2,r3 ;@ r12=Disp+An+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ef8] jmp $3333.w uses Op4ef8 ---------- -Op4ef8: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$3333.w' into r12: - ldrsh r12,[r4],#2 ;@ Fetch Absolute Short address -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4ef9] jmp $33333333.l uses Op4ef9 ---------- -Op4ef9: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '$33333333.l' into r12: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r12,r0,r2,lsl #16 -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4efa] jmp ($3333,pc); =3335 uses Op4efa ---------- -Op4efa: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($3333,pc)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r12,r2,r0 ;@ ($nn,PC) -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [4efb] jmp ($33,pc,d3.w*2); =35 uses Op4efb ---------- -Op4efb: - ldr r11,[r7,#0x60] ;@ Get Memory base - -;@ EaCalc : Get '($33,pc,d3.w*2)' into r12: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r12,r2,r0 ;@ r12=Disp+PC+Rn -;@ Jump - Get new PC from r12 - add r0,r12,r11 ;@ Memory Base + New PC - -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5000] addq.b #8, d0 uses Op5000 ---------- -Op5000: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5010] addq.b #8, (a0) uses Op5010 ---------- -Op5010: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5018] addq.b #8, (a0)+ uses Op5018 ---------- -Op5018: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [501f] addq.b #8, (a7)+ uses Op501f ---------- -Op501f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5020] addq.b #8, -(a0) uses Op5020 ---------- -Op5020: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5027] addq.b #8, -(a7) uses Op5027 ---------- -Op5027: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5028] addq.b #8, ($3333,a0) uses Op5028 ---------- -Op5028: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5030] addq.b #8, ($33,a0,d3.w*2) uses Op5030 ---------- -Op5030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5038] addq.b #8, $3333.w uses Op5038 ---------- -Op5038: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5039] addq.b #8, $33333333.l uses Op5039 ---------- -Op5039: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - adds r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5040] addq.w #8, d0 uses Op5040 ---------- -Op5040: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5048] addq.w #8, a0 uses Op5048 ---------- -Op5048: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5050] addq.w #8, (a0) uses Op5050 ---------- -Op5050: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5058] addq.w #8, (a0)+ uses Op5058 ---------- -Op5058: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5060] addq.w #8, -(a0) uses Op5060 ---------- -Op5060: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5068] addq.w #8, ($3333,a0) uses Op5068 ---------- -Op5068: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5070] addq.w #8, ($33,a0,d3.w*2) uses Op5070 ---------- -Op5070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5078] addq.w #8, $3333.w uses Op5078 ---------- -Op5078: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5079] addq.w #8, $33333333.l uses Op5079 ---------- -Op5079: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - adds r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5080] addq.l #8, d0 uses Op5080 ---------- -Op5080: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5088] addq.l #8, a0 uses Op5088 ---------- -Op5088: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5090] addq.l #8, (a0) uses Op5090 ---------- -Op5090: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5098] addq.l #8, (a0)+ uses Op5098 ---------- -Op5098: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50a0] addq.l #8, -(a0) uses Op50a0 ---------- -Op50a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50a8] addq.l #8, ($3333,a0) uses Op50a8 ---------- -Op50a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50b0] addq.l #8, ($33,a0,d3.w*2) uses Op50b0 ---------- -Op50b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50b8] addq.l #8, $3333.w uses Op50b8 ---------- -Op50b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50b9] addq.l #8, $33333333.l uses Op50b9 ---------- -Op50b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - adds r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50c0] st d0 uses Op50c0 ---------- -Op50c0: - mvn r1,#0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50c8] dbt d0, 3335 uses Op50c8 ---------- -Op50c8: -;@ condition true: -DbraTrue: - add r4,r4,#2 ;@ Skip branch offset - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50d0] st (a0) uses Op50d0 ---------- -Op50d0: - mvn r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50d8] st (a0)+ uses Op50d8 ---------- -Op50d8: - mvn r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50df] st (a7)+ uses Op50df ---------- -Op50df: - mvn r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50e0] st -(a0) uses Op50e0 ---------- -Op50e0: - mvn r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50e7] st -(a7) uses Op50e7 ---------- -Op50e7: - mvn r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50e8] st ($3333,a0) uses Op50e8 ---------- -Op50e8: - mvn r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50f0] st ($33,a0,d3.w*2) uses Op50f0 ---------- -Op50f0: - mvn r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50f8] st $3333.w uses Op50f8 ---------- -Op50f8: - mvn r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [50f9] st $33333333.l uses Op50f9 ---------- -Op50f9: - mvn r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5100] subq.b #8, d0 uses Op5100 ---------- -Op5100: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5110] subq.b #8, (a0) uses Op5110 ---------- -Op5110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5118] subq.b #8, (a0)+ uses Op5118 ---------- -Op5118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [511f] subq.b #8, (a7)+ uses Op511f ---------- -Op511f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5120] subq.b #8, -(a0) uses Op5120 ---------- -Op5120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5127] subq.b #8, -(a7) uses Op5127 ---------- -Op5127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5128] subq.b #8, ($3333,a0) uses Op5128 ---------- -Op5128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5130] subq.b #8, ($33,a0,d3.w*2) uses Op5130 ---------- -Op5130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5138] subq.b #8, $3333.w uses Op5138 ---------- -Op5138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5139] subq.b #8, $33333333.l uses Op5139 ---------- -Op5139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - mov r0,r0,asl #24 - - subs r1,r0,#0x8000000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5140] subq.w #8, d0 uses Op5140 ---------- -Op5140: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5148] subq.w #8, a0 uses Op5148 ---------- -Op5148: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - subs r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5150] subq.w #8, (a0) uses Op5150 ---------- -Op5150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5158] subq.w #8, (a0)+ uses Op5158 ---------- -Op5158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5160] subq.w #8, -(a0) uses Op5160 ---------- -Op5160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5168] subq.w #8, ($3333,a0) uses Op5168 ---------- -Op5168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5170] subq.w #8, ($33,a0,d3.w*2) uses Op5170 ---------- -Op5170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5178] subq.w #8, $3333.w uses Op5178 ---------- -Op5178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5179] subq.w #8, $33333333.l uses Op5179 ---------- -Op5179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - mov r0,r0,asl #16 - - subs r1,r0,#0x80000 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5180] subq.l #8, d0 uses Op5180 ---------- -Op5180: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5188] subq.l #8, a0 uses Op5188 ---------- -Op5188: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - subs r1,r0,#0x0008 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5190] subq.l #8, (a0) uses Op5190 ---------- -Op5190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5198] subq.l #8, (a0)+ uses Op5198 ---------- -Op5198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51a0] subq.l #8, -(a0) uses Op51a0 ---------- -Op51a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51a8] subq.l #8, ($3333,a0) uses Op51a8 ---------- -Op51a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51b0] subq.l #8, ($33,a0,d3.w*2) uses Op51b0 ---------- -Op51b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51b8] subq.l #8, $3333.w uses Op51b8 ---------- -Op51b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51b9] subq.l #8, $33333333.l uses Op51b9 ---------- -Op51b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - subs r1,r0,#0x0008 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51c0] sf d0 uses Op51c0 ---------- -Op51c0: - mov r1,#0 - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51d0] sf (a0) uses Op51d0 ---------- -Op51d0: - mov r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51d8] sf (a0)+ uses Op51d8 ---------- -Op51d8: - mov r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51df] sf (a7)+ uses Op51df ---------- -Op51df: - mov r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51e0] sf -(a0) uses Op51e0 ---------- -Op51e0: - mov r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51e7] sf -(a7) uses Op51e7 ---------- -Op51e7: - mov r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51e8] sf ($3333,a0) uses Op51e8 ---------- -Op51e8: - mov r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51f0] sf ($33,a0,d3.w*2) uses Op51f0 ---------- -Op51f0: - mov r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51f8] sf $3333.w uses Op51f8 ---------- -Op51f8: - mov r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [51f9] sf $33333333.l uses Op51f9 ---------- -Op51f9: - mov r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52c0] shi d0 uses Op52c0 ---------- -Op52c0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52c8] dbhi d0, 3335 uses Op52c8 ---------- -Op52c8: -;@ Is the condition true? - tst r10,#0x60000000 ;@ hi: !C && !Z -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52d0] shi (a0) uses Op52d0 ---------- -Op52d0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52d8] shi (a0)+ uses Op52d8 ---------- -Op52d8: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52df] shi (a7)+ uses Op52df ---------- -Op52df: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52e0] shi -(a0) uses Op52e0 ---------- -Op52e0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52e7] shi -(a7) uses Op52e7 ---------- -Op52e7: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52e8] shi ($3333,a0) uses Op52e8 ---------- -Op52e8: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52f0] shi ($33,a0,d3.w*2) uses Op52f0 ---------- -Op52f0: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52f8] shi $3333.w uses Op52f8 ---------- -Op52f8: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [52f9] shi $33333333.l uses Op52f9 ---------- -Op52f9: - mov r1,#0 - tst r10,#0x60000000 ;@ hi: !C && !Z - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53c0] sls d0 uses Op53c0 ---------- -Op53c0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53c8] dbls d0, 3335 uses Op53c8 ---------- -Op53c8: -;@ Is the condition true? - tst r10,#0x60000000 ;@ ls: C || Z -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53d0] sls (a0) uses Op53d0 ---------- -Op53d0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53d8] sls (a0)+ uses Op53d8 ---------- -Op53d8: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53df] sls (a7)+ uses Op53df ---------- -Op53df: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53e0] sls -(a0) uses Op53e0 ---------- -Op53e0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53e7] sls -(a7) uses Op53e7 ---------- -Op53e7: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53e8] sls ($3333,a0) uses Op53e8 ---------- -Op53e8: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53f0] sls ($33,a0,d3.w*2) uses Op53f0 ---------- -Op53f0: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53f8] sls $3333.w uses Op53f8 ---------- -Op53f8: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [53f9] sls $33333333.l uses Op53f9 ---------- -Op53f9: - mov r1,#0 - tst r10,#0x60000000 ;@ ls: C || Z - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54c0] scc d0 uses Op54c0 ---------- -Op54c0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54c8] dbcc d0, 3335 uses Op54c8 ---------- -Op54c8: -;@ Is the condition true? - tst r10,#0x20000000 ;@ cc: !C -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54d0] scc (a0) uses Op54d0 ---------- -Op54d0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54d8] scc (a0)+ uses Op54d8 ---------- -Op54d8: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54df] scc (a7)+ uses Op54df ---------- -Op54df: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54e0] scc -(a0) uses Op54e0 ---------- -Op54e0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54e7] scc -(a7) uses Op54e7 ---------- -Op54e7: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54e8] scc ($3333,a0) uses Op54e8 ---------- -Op54e8: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54f0] scc ($33,a0,d3.w*2) uses Op54f0 ---------- -Op54f0: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54f8] scc $3333.w uses Op54f8 ---------- -Op54f8: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [54f9] scc $33333333.l uses Op54f9 ---------- -Op54f9: - mov r1,#0 - tst r10,#0x20000000 ;@ cc: !C - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55c0] scs d0 uses Op55c0 ---------- -Op55c0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55c8] dbcs d0, 3335 uses Op55c8 ---------- -Op55c8: -;@ Is the condition true? - tst r10,#0x20000000 ;@ cs: C -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55d0] scs (a0) uses Op55d0 ---------- -Op55d0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55d8] scs (a0)+ uses Op55d8 ---------- -Op55d8: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55df] scs (a7)+ uses Op55df ---------- -Op55df: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55e0] scs -(a0) uses Op55e0 ---------- -Op55e0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55e7] scs -(a7) uses Op55e7 ---------- -Op55e7: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55e8] scs ($3333,a0) uses Op55e8 ---------- -Op55e8: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55f0] scs ($33,a0,d3.w*2) uses Op55f0 ---------- -Op55f0: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55f8] scs $3333.w uses Op55f8 ---------- -Op55f8: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [55f9] scs $33333333.l uses Op55f9 ---------- -Op55f9: - mov r1,#0 - tst r10,#0x20000000 ;@ cs: C - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56c0] sne d0 uses Op56c0 ---------- -Op56c0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56c8] dbne d0, 3335 uses Op56c8 ---------- -Op56c8: -;@ Is the condition true? - tst r10,#0x40000000 ;@ ne: !Z -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56d0] sne (a0) uses Op56d0 ---------- -Op56d0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56d8] sne (a0)+ uses Op56d8 ---------- -Op56d8: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56df] sne (a7)+ uses Op56df ---------- -Op56df: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56e0] sne -(a0) uses Op56e0 ---------- -Op56e0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56e7] sne -(a7) uses Op56e7 ---------- -Op56e7: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56e8] sne ($3333,a0) uses Op56e8 ---------- -Op56e8: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56f0] sne ($33,a0,d3.w*2) uses Op56f0 ---------- -Op56f0: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56f8] sne $3333.w uses Op56f8 ---------- -Op56f8: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [56f9] sne $33333333.l uses Op56f9 ---------- -Op56f9: - mov r1,#0 - tst r10,#0x40000000 ;@ ne: !Z - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57c0] seq d0 uses Op57c0 ---------- -Op57c0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57c8] dbeq d0, 3335 uses Op57c8 ---------- -Op57c8: -;@ Is the condition true? - tst r10,#0x40000000 ;@ eq: Z -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57d0] seq (a0) uses Op57d0 ---------- -Op57d0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57d8] seq (a0)+ uses Op57d8 ---------- -Op57d8: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57df] seq (a7)+ uses Op57df ---------- -Op57df: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57e0] seq -(a0) uses Op57e0 ---------- -Op57e0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57e7] seq -(a7) uses Op57e7 ---------- -Op57e7: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57e8] seq ($3333,a0) uses Op57e8 ---------- -Op57e8: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57f0] seq ($33,a0,d3.w*2) uses Op57f0 ---------- -Op57f0: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57f8] seq $3333.w uses Op57f8 ---------- -Op57f8: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [57f9] seq $33333333.l uses Op57f9 ---------- -Op57f9: - mov r1,#0 - tst r10,#0x40000000 ;@ eq: Z - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58c0] svc d0 uses Op58c0 ---------- -Op58c0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - subeq r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58c8] dbvc d0, 3335 uses Op58c8 ---------- -Op58c8: -;@ Is the condition true? - tst r10,#0x10000000 ;@ vc: !V -;@ If so, don't dbra - beq DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58d0] svc (a0) uses Op58d0 ---------- -Op58d0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58d8] svc (a0)+ uses Op58d8 ---------- -Op58d8: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58df] svc (a7)+ uses Op58df ---------- -Op58df: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58e0] svc -(a0) uses Op58e0 ---------- -Op58e0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58e7] svc -(a7) uses Op58e7 ---------- -Op58e7: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58e8] svc ($3333,a0) uses Op58e8 ---------- -Op58e8: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58f0] svc ($33,a0,d3.w*2) uses Op58f0 ---------- -Op58f0: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58f8] svc $3333.w uses Op58f8 ---------- -Op58f8: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [58f9] svc $33333333.l uses Op58f9 ---------- -Op58f9: - mov r1,#0 - tst r10,#0x10000000 ;@ vc: !V - mvneq r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59c0] svs d0 uses Op59c0 ---------- -Op59c0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - subne r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59c8] dbvs d0, 3335 uses Op59c8 ---------- -Op59c8: -;@ Is the condition true? - tst r10,#0x10000000 ;@ vs: V -;@ If so, don't dbra - bne DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59d0] svs (a0) uses Op59d0 ---------- -Op59d0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59d8] svs (a0)+ uses Op59d8 ---------- -Op59d8: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59df] svs (a7)+ uses Op59df ---------- -Op59df: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59e0] svs -(a0) uses Op59e0 ---------- -Op59e0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59e7] svs -(a7) uses Op59e7 ---------- -Op59e7: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59e8] svs ($3333,a0) uses Op59e8 ---------- -Op59e8: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59f0] svs ($33,a0,d3.w*2) uses Op59f0 ---------- -Op59f0: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59f8] svs $3333.w uses Op59f8 ---------- -Op59f8: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [59f9] svs $33333333.l uses Op59f9 ---------- -Op59f9: - mov r1,#0 - tst r10,#0x10000000 ;@ vs: V - mvnne r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ac0] spl d0 uses Op5ac0 ---------- -Op5ac0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - subpl r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ac8] dbpl d0, 3335 uses Op5ac8 ---------- -Op5ac8: -;@ Is the condition true? - tst r10,r10 ;@ pl: !N -;@ If so, don't dbra - bpl DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ad0] spl (a0) uses Op5ad0 ---------- -Op5ad0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ad8] spl (a0)+ uses Op5ad8 ---------- -Op5ad8: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5adf] spl (a7)+ uses Op5adf ---------- -Op5adf: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ae0] spl -(a0) uses Op5ae0 ---------- -Op5ae0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ae7] spl -(a7) uses Op5ae7 ---------- -Op5ae7: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ae8] spl ($3333,a0) uses Op5ae8 ---------- -Op5ae8: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5af0] spl ($33,a0,d3.w*2) uses Op5af0 ---------- -Op5af0: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5af8] spl $3333.w uses Op5af8 ---------- -Op5af8: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5af9] spl $33333333.l uses Op5af9 ---------- -Op5af9: - mov r1,#0 - tst r10,r10 ;@ pl: !N - mvnpl r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bc0] smi d0 uses Op5bc0 ---------- -Op5bc0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - submi r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bc8] dbmi d0, 3335 uses Op5bc8 ---------- -Op5bc8: -;@ Is the condition true? - tst r10,r10 ;@ mi: N -;@ If so, don't dbra - bmi DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bd0] smi (a0) uses Op5bd0 ---------- -Op5bd0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bd8] smi (a0)+ uses Op5bd8 ---------- -Op5bd8: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bdf] smi (a7)+ uses Op5bdf ---------- -Op5bdf: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5be0] smi -(a0) uses Op5be0 ---------- -Op5be0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5be7] smi -(a7) uses Op5be7 ---------- -Op5be7: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5be8] smi ($3333,a0) uses Op5be8 ---------- -Op5be8: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bf0] smi ($33,a0,d3.w*2) uses Op5bf0 ---------- -Op5bf0: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bf8] smi $3333.w uses Op5bf8 ---------- -Op5bf8: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5bf9] smi $33333333.l uses Op5bf9 ---------- -Op5bf9: - mov r1,#0 - tst r10,r10 ;@ mi: N - mvnmi r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cc0] sge d0 uses Op5cc0 ---------- -Op5cc0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - subpl r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cc8] dbge d0, 3335 uses Op5cc8 ---------- -Op5cc8: -;@ Is the condition true? - teq r10,r10,lsl #3 ;@ ge: N == V -;@ If so, don't dbra - bpl DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cd0] sge (a0) uses Op5cd0 ---------- -Op5cd0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cd8] sge (a0)+ uses Op5cd8 ---------- -Op5cd8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cdf] sge (a7)+ uses Op5cdf ---------- -Op5cdf: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ce0] sge -(a0) uses Op5ce0 ---------- -Op5ce0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ce7] sge -(a7) uses Op5ce7 ---------- -Op5ce7: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ce8] sge ($3333,a0) uses Op5ce8 ---------- -Op5ce8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cf0] sge ($33,a0,d3.w*2) uses Op5cf0 ---------- -Op5cf0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cf8] sge $3333.w uses Op5cf8 ---------- -Op5cf8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5cf9] sge $33333333.l uses Op5cf9 ---------- -Op5cf9: - mov r1,#0 - teq r10,r10,lsl #3 ;@ ge: N == V - mvnpl r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dc0] slt d0 uses Op5dc0 ---------- -Op5dc0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - submi r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dc8] dblt d0, 3335 uses Op5dc8 ---------- -Op5dc8: -;@ Is the condition true? - teq r10,r10,lsl #3 ;@ lt: N != V -;@ If so, don't dbra - bmi DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dd0] slt (a0) uses Op5dd0 ---------- -Op5dd0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5dd8] slt (a0)+ uses Op5dd8 ---------- -Op5dd8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ddf] slt (a7)+ uses Op5ddf ---------- -Op5ddf: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5de0] slt -(a0) uses Op5de0 ---------- -Op5de0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5de7] slt -(a7) uses Op5de7 ---------- -Op5de7: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5de8] slt ($3333,a0) uses Op5de8 ---------- -Op5de8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5df0] slt ($33,a0,d3.w*2) uses Op5df0 ---------- -Op5df0: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5df8] slt $3333.w uses Op5df8 ---------- -Op5df8: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5df9] slt $33333333.l uses Op5df9 ---------- -Op5df9: - mov r1,#0 - teq r10,r10,lsl #3 ;@ lt: N != V - mvnmi r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e00] addq.b #7, d0 uses Op5e00 ---------- -Op5e00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e10] addq.b #7, (a0) uses Op5e10 ---------- -Op5e10: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e18] addq.b #7, (a0)+ uses Op5e18 ---------- -Op5e18: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e1f] addq.b #7, (a7)+ uses Op5e1f ---------- -Op5e1f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e20] addq.b #7, -(a0) uses Op5e20 ---------- -Op5e20: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e27] addq.b #7, -(a7) uses Op5e27 ---------- -Op5e27: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e28] addq.b #7, ($3333,a0) uses Op5e28 ---------- -Op5e28: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e30] addq.b #7, ($33,a0,d3.w*2) uses Op5e30 ---------- -Op5e30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e38] addq.b #7, $3333.w uses Op5e38 ---------- -Op5e38: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e39] addq.b #7, $33333333.l uses Op5e39 ---------- -Op5e39: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - adds r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e48] addq.w #7, a0 uses Op5e48 ---------- -Op5e48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e50] addq.w #7, (a0) uses Op5e50 ---------- -Op5e50: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e58] addq.w #7, (a0)+ uses Op5e58 ---------- -Op5e58: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e60] addq.w #7, -(a0) uses Op5e60 ---------- -Op5e60: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e68] addq.w #7, ($3333,a0) uses Op5e68 ---------- -Op5e68: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e70] addq.w #7, ($33,a0,d3.w*2) uses Op5e70 ---------- -Op5e70: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e78] addq.w #7, $3333.w uses Op5e78 ---------- -Op5e78: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e79] addq.w #7, $33333333.l uses Op5e79 ---------- -Op5e79: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - adds r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e80] addq.l #7, d0 uses Op5e80 ---------- -Op5e80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e88] addq.l #7, a0 uses Op5e88 ---------- -Op5e88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e90] addq.l #7, (a0) uses Op5e90 ---------- -Op5e90: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5e98] addq.l #7, (a0)+ uses Op5e98 ---------- -Op5e98: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ea0] addq.l #7, -(a0) uses Op5ea0 ---------- -Op5ea0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ea8] addq.l #7, ($3333,a0) uses Op5ea8 ---------- -Op5ea8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5eb0] addq.l #7, ($33,a0,d3.w*2) uses Op5eb0 ---------- -Op5eb0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5eb8] addq.l #7, $3333.w uses Op5eb8 ---------- -Op5eb8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5eb9] addq.l #7, $33333333.l uses Op5eb9 ---------- -Op5eb9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - adds r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ec0] sgt d0 uses Op5ec0 ---------- -Op5ec0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - subpl r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ec8] dbgt d0, 3335 uses Op5ec8 ---------- -Op5ec8: -;@ Is the condition true? - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 -;@ If so, don't dbra - bpl DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ed0] sgt (a0) uses Op5ed0 ---------- -Op5ed0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ed8] sgt (a0)+ uses Op5ed8 ---------- -Op5ed8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5edf] sgt (a7)+ uses Op5edf ---------- -Op5edf: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ee0] sgt -(a0) uses Op5ee0 ---------- -Op5ee0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ee7] sgt -(a7) uses Op5ee7 ---------- -Op5ee7: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ee8] sgt ($3333,a0) uses Op5ee8 ---------- -Op5ee8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ef0] sgt ($33,a0,d3.w*2) uses Op5ef0 ---------- -Op5ef0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ef8] sgt $3333.w uses Op5ef8 ---------- -Op5ef8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ef9] sgt $33333333.l uses Op5ef9 ---------- -Op5ef9: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - mvnpl r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f00] subq.b #7, d0 uses Op5f00 ---------- -Op5f00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f10] subq.b #7, (a0) uses Op5f10 ---------- -Op5f10: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f18] subq.b #7, (a0)+ uses Op5f18 ---------- -Op5f18: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f1f] subq.b #7, (a7)+ uses Op5f1f ---------- -Op5f1f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f20] subq.b #7, -(a0) uses Op5f20 ---------- -Op5f20: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f27] subq.b #7, -(a7) uses Op5f27 ---------- -Op5f27: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f28] subq.b #7, ($3333,a0) uses Op5f28 ---------- -Op5f28: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f30] subq.b #7, ($33,a0,d3.w*2) uses Op5f30 ---------- -Op5f30: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f38] subq.b #7, $3333.w uses Op5f38 ---------- -Op5f38: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f39] subq.b #7, $33333333.l uses Op5f39 ---------- -Op5f39: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #24 - - subs r1,r0,r2,lsl #15 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f40] subq.w #7, d0 uses Op5f40 ---------- -Op5f40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f48] subq.w #7, a0 uses Op5f48 ---------- -Op5f48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f50] subq.w #7, (a0) uses Op5f50 ---------- -Op5f50: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f58] subq.w #7, (a0)+ uses Op5f58 ---------- -Op5f58: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f60] subq.w #7, -(a0) uses Op5f60 ---------- -Op5f60: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f68] subq.w #7, ($3333,a0) uses Op5f68 ---------- -Op5f68: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f70] subq.w #7, ($33,a0,d3.w*2) uses Op5f70 ---------- -Op5f70: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f78] subq.w #7, $3333.w uses Op5f78 ---------- -Op5f78: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f79] subq.w #7, $33333333.l uses Op5f79 ---------- -Op5f79: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - mov r0,r0,asl #16 - - subs r1,r0,r2,lsl #7 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f80] subq.l #7, d0 uses Op5f80 ---------- -Op5f80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f88] subq.l #7, a0 uses Op5f88 ---------- -Op5f88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f90] subq.l #7, (a0) uses Op5f90 ---------- -Op5f90: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5f98] subq.l #7, (a0)+ uses Op5f98 ---------- -Op5f98: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fa0] subq.l #7, -(a0) uses Op5fa0 ---------- -Op5fa0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fa8] subq.l #7, ($3333,a0) uses Op5fa8 ---------- -Op5fa8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fb0] subq.l #7, ($33,a0,d3.w*2) uses Op5fb0 ---------- -Op5fb0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fb8] subq.l #7, $3333.w uses Op5fb8 ---------- -Op5fb8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fb9] subq.l #7, $33333333.l uses Op5fb9 ---------- -Op5fb9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - and r2,r8,#0x0e00 ;@ Get quick value - - subs r1,r0,r2,lsr #9 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fc0] sle d0 uses Op5fc0 ---------- -Op5fc0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - submi r5,r5,#2 ;@ Extra cycles - -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaWrite: r1 into register[r0]: - strb r1,[r7,r0,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fc8] dble d0, 3335 uses Op5fc8 ---------- -Op5fc8: -;@ Is the condition true? - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 -;@ If so, don't dbra - bmi DbraTrue - -;@ Decrement Dn.w - and r1,r8,#0x0007 - mov r1,r1,lsl #2 - ldrsh r0,[r7,r1] - strb r8,[r7,#0x45] ;@ not polling - sub r0,r0,#1 - strh r0,[r7,r1] - -;@ Check if Dn.w is -1 - cmn r0,#1 - beq DbraMin1 - -;@ Get Branch offset: - ldrsh r0,[r4] - add r0,r4,r0 ;@ r0 = New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fd0] sle (a0) uses Op5fd0 ---------- -Op5fd0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fd8] sle (a0)+ uses Op5fd8 ---------- -Op5fd8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '(a0)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fdf] sle (a7)+ uses Op5fdf ---------- -Op5fdf: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '(a7)+' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fe0] sle -(a0) uses Op5fe0 ---------- -Op5fe0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaWrite: Write r1 into '-(a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fe7] sle -(a7) uses Op5fe7 ---------- -Op5fe7: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaWrite: Write r1 into '-(a7)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5fe8] sle ($3333,a0) uses Op5fe8 ---------- -Op5fe8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaWrite: Write r1 into '($3333,a0)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ff0] sle ($33,a0,d3.w*2) uses Op5ff0 ---------- -Op5ff0: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ff8] sle $3333.w uses Op5ff8 ---------- -Op5ff8: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaWrite: Write r1 into '$3333.w' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [5ff9] sle $33333333.l uses Op5ff9 ---------- -Op5ff9: - mov r1,#0 - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - mvnmi r1,#0 - -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r0): - and r1,r1,#0xff - mov lr,pc - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6000] bra 3335 uses Op6000 ---------- -Op6000: - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6003] bra 5 uses Op6003 ---------- -Op6003: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6103] bsr 5 uses Op6103 ---------- -Op6103: - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC -;@ Bsr - remember old PC - ldr r12,[r7,#0x60] ;@ Get Memory base - ldr r2,[r7,#0x3c] - sub r1,r4,r12 ;@ r1 = Old PC - -;@ Push r1 onto stack - sub r0,r2,#4 ;@ Predecrement A7 - str r0,[r7,#0x3c] ;@ Save A7 - mov lr,pc - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6200] bhi 3335 uses Op6200 ---------- -Op6200: - tst r10,#0x60000000 ;@ hi: !C && !Z - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6202] bhi 4 uses Op6202 ---------- -Op6202: - tst r10,#0x60000000 ;@ hi: !C && !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6203] bhi 5 uses Op6203 ---------- -Op6203: - tst r10,#0x60000000 ;@ hi: !C && !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6300] bls 3335 uses Op6300 ---------- -Op6300: - tst r10,#0x60000000 ;@ ls: C || Z - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6302] bls 4 uses Op6302 ---------- -Op6302: - tst r10,#0x60000000 ;@ ls: C || Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6303] bls 5 uses Op6303 ---------- -Op6303: - tst r10,#0x60000000 ;@ ls: C || Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6400] bcc 3335 uses Op6400 ---------- -Op6400: - tst r10,#0x20000000 ;@ cc: !C - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6403] bcc 5 uses Op6403 ---------- -Op6403: - tst r10,#0x20000000 ;@ cc: !C - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6503] bcs 5 uses Op6503 ---------- -Op6503: - tst r10,#0x20000000 ;@ cs: C - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6600] bne 3335 uses Op6600 ---------- -Op6600: - tst r10,#0x40000000 ;@ ne: !Z - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6603] bne 5 uses Op6603 ---------- -Op6603: - tst r10,#0x40000000 ;@ ne: !Z - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6703] beq 5 uses Op6703 ---------- -Op6703: - tst r10,#0x40000000 ;@ eq: Z - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6800] bvc 3335 uses Op6800 ---------- -Op6800: - tst r10,#0x10000000 ;@ vc: !V - bne BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6802] bvc 4 uses Op6802 ---------- -Op6802: - tst r10,#0x10000000 ;@ vc: !V - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6803] bvc 5 uses Op6803 ---------- -Op6803: - tst r10,#0x10000000 ;@ vc: !V - bne BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6900] bvs 3335 uses Op6900 ---------- -Op6900: - tst r10,#0x10000000 ;@ vs: V - beq BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6902] bvs 4 uses Op6902 ---------- -Op6902: - tst r10,#0x10000000 ;@ vs: V - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6903] bvs 5 uses Op6903 ---------- -Op6903: - tst r10,#0x10000000 ;@ vs: V - beq BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6a00] bpl 3335 uses Op6a00 ---------- -Op6a00: - tst r10,r10 ;@ pl: !N - bmi BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6a03] bpl 5 uses Op6a03 ---------- -Op6a03: - tst r10,r10 ;@ pl: !N - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6b00] bmi 3335 uses Op6b00 ---------- -Op6b00: - tst r10,r10 ;@ mi: N - bpl BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6b02] bmi 4 uses Op6b02 ---------- -Op6b02: - tst r10,r10 ;@ mi: N - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6b03] bmi 5 uses Op6b03 ---------- -Op6b03: - tst r10,r10 ;@ mi: N - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6c00] bge 3335 uses Op6c00 ---------- -Op6c00: - teq r10,r10,lsl #3 ;@ ge: N == V - bmi BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6c02] bge 4 uses Op6c02 ---------- -Op6c02: - teq r10,r10,lsl #3 ;@ ge: N == V - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6c03] bge 5 uses Op6c03 ---------- -Op6c03: - teq r10,r10,lsl #3 ;@ ge: N == V - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6d00] blt 3335 uses Op6d00 ---------- -Op6d00: - teq r10,r10,lsl #3 ;@ lt: N != V - bpl BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6d02] blt 4 uses Op6d02 ---------- -Op6d02: - teq r10,r10,lsl #3 ;@ lt: N != V - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6d03] blt 5 uses Op6d03 ---------- -Op6d03: - teq r10,r10,lsl #3 ;@ lt: N != V - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6e00] bgt 3335 uses Op6e00 ---------- -Op6e00: - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - bmi BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6e02] bgt 4 uses Op6e02 ---------- -Op6e02: - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6e03] bgt 5 uses Op6e03 ---------- -Op6e03: - eor r0,r10,r10,lsl #3 ;@ gt: !Z && N == V - orrs r0,r10,lsl #1 - bmi BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6f00] ble 3335 uses Op6f00 ---------- -Op6f00: - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - bpl BccDontBranch16 - - ldrsh r11,[r4] ;@ Fetch Branch offset -;@ Branch taken - Add on r0 to PC - add r0,r4,r11 ;@ New PC -;@ Check Memory Base+pc - mov lr,pc - ldr pc,[r7,#0x64] ;@ Call checkpc() - - mov r4,r0 - tst r4,#1 ;@ address error? - bne ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6f02] ble 4 uses Op6f02 ---------- -Op6f02: - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [6f03] ble 5 uses Op6f03 ---------- -Op6f03: - eor r0,r10,r10,lsl #3 ;@ le: Z || N != V - orrs r0,r10,lsl #1 - bpl BccDontBranch8 - - mov r11,r8,asl #24 ;@ Shift 8-bit signed offset up... - -;@ Branch taken - Add on r0 to PC - add r4,r4,r11,asr #24 ;@ r4 = New PC - b ExceptionAddressError_r_prg_r4 - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8000] or.b d0, d0 uses Op8000 ---------- -Op8000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8010] or.b (a0), d0 uses Op8010 ---------- -Op8010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8018] or.b (a0)+, d0 uses Op8018 ---------- -Op8018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [801f] or.b (a7)+, d0 uses Op801f ---------- -Op801f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8020] or.b -(a0), d0 uses Op8020 ---------- -Op8020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8027] or.b -(a7), d0 uses Op8027 ---------- -Op8027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8028] or.b ($3333,a0), d0 uses Op8028 ---------- -Op8028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8030] or.b ($33,a0,d3.w*2), d0 uses Op8030 ---------- -Op8030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8038] or.b $3333.w, d0 uses Op8038 ---------- -Op8038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8039] or.b $33333333.l, d0 uses Op8039 ---------- -Op8039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [803a] or.b ($3333,pc), d0; =3335 uses Op803a ---------- -Op803a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [803b] or.b ($33,pc,d3.w*2), d0; =35 uses Op803b ---------- -Op803b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [803c] or.b #$33, d0 uses Op803c ---------- -Op803c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8040] or.w d0, d0 uses Op8040 ---------- -Op8040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8050] or.w (a0), d0 uses Op8050 ---------- -Op8050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8058] or.w (a0)+, d0 uses Op8058 ---------- -Op8058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8060] or.w -(a0), d0 uses Op8060 ---------- -Op8060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8068] or.w ($3333,a0), d0 uses Op8068 ---------- -Op8068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8070] or.w ($33,a0,d3.w*2), d0 uses Op8070 ---------- -Op8070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8078] or.w $3333.w, d0 uses Op8078 ---------- -Op8078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8079] or.w $33333333.l, d0 uses Op8079 ---------- -Op8079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [807a] or.w ($3333,pc), d0; =3335 uses Op807a ---------- -Op807a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [807b] or.w ($33,pc,d3.w*2), d0; =35 uses Op807b ---------- -Op807b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [807c] or.w #$3333, d0 uses Op807c ---------- -Op807c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8080] or.l d0, d0 uses Op8080 ---------- -Op8080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8090] or.l (a0), d0 uses Op8090 ---------- -Op8090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8098] or.l (a0)+, d0 uses Op8098 ---------- -Op8098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80a0] or.l -(a0), d0 uses Op80a0 ---------- -Op80a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80a8] or.l ($3333,a0), d0 uses Op80a8 ---------- -Op80a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80b0] or.l ($33,a0,d3.w*2), d0 uses Op80b0 ---------- -Op80b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80b8] or.l $3333.w, d0 uses Op80b8 ---------- -Op80b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80b9] or.l $33333333.l, d0 uses Op80b9 ---------- -Op80b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80ba] or.l ($3333,pc), d0; =3335 uses Op80ba ---------- -Op80ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80bb] or.l ($33,pc,d3.w*2), d0; =35 uses Op80bb ---------- -Op80bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80bc] or.l #$33333333, d0 uses Op80bc ---------- -Op80bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [80c0] divu.w d0, d0 uses Op80c0 ---------- -Op80c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80c0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80c0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80c0 - -Divide80c0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80c0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80c0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80c0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#140 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80c0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#178 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80d0] divu.w (a0), d0 uses Op80d0 ---------- -Op80d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80d0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80d0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80d0 - -Divide80d0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80d0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80d0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80d0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#144 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80d0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#182 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80d8] divu.w (a0)+, d0 uses Op80d8 ---------- -Op80d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80d8 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80d8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80d8 - -Divide80d8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80d8 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80d8 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80d8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#144 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80d8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#182 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80e0] divu.w -(a0), d0 uses Op80e0 ---------- -Op80e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80e0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80e0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80e0 - -Divide80e0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80e0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80e0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80e0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#146 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80e0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#184 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80e8] divu.w ($3333,a0), d0 uses Op80e8 ---------- -Op80e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80e8 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80e8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80e8 - -Divide80e8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80e8 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80e8 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80e8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#148 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80e8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#186 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80f0] divu.w ($33,a0,d3.w*2), d0 uses Op80f0 ---------- -Op80f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80f0 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80f0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80f0 - -Divide80f0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80f0 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80f0 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80f0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#150 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80f0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#188 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80f8] divu.w $3333.w, d0 uses Op80f8 ---------- -Op80f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80f8 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80f8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80f8 - -Divide80f8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80f8 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80f8 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80f8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#148 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80f8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#186 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80f9] divu.w $33333333.l, d0 uses Op80f9 ---------- -Op80f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80f9 ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80f9: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80f9 - -Divide80f9: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80f9 - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80f9 ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80f9: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#152 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80f9: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#190 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80fa] divu.w ($3333,pc), d0; =3335 uses Op80fa ---------- -Op80fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80fa ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80fa: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80fa - -Divide80fa: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80fa - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80fa ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80fa: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#148 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80fa: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#186 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80fb] divu.w ($33,pc,d3.w*2), d0; =35 uses Op80fb ---------- -Op80fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80fb ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80fb: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80fb - -Divide80fb: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80fb - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80fb ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80fb: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#150 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80fb: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#188 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [80fc] divu.w #$3333, d0 uses Op80fc ---------- -Op80fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero80fc ;@ division by zero - - mov r0,r1,lsr #16 ;@ use only 16 bits of divisor - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift80fc: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift80fc - -Divide80fc: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide80fc - -;@r3==quotient,r2==remainder - movs r1,r3,lsr #16 ;@ check for overflow condition - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop80fc ;@ overflow! - - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop80fc: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#144 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero80fc: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#182 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [8100] sbcd d0, d0 uses Op8100 ---------- -Op8100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8108] sbcd -(a0), -(a0) uses Op8108 ---------- -Op8108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [810f] sbcd -(a7), -(a0) uses Op810f ---------- -Op810f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8110] or.b d0, (a0) uses Op8110 ---------- -Op8110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8118] or.b d0, (a0)+ uses Op8118 ---------- -Op8118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [811f] or.b d0, (a7)+ uses Op811f ---------- -Op811f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8120] or.b d0, -(a0) uses Op8120 ---------- -Op8120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8127] or.b d0, -(a7) uses Op8127 ---------- -Op8127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8128] or.b d0, ($3333,a0) uses Op8128 ---------- -Op8128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8130] or.b d0, ($33,a0,d3.w*2) uses Op8130 ---------- -Op8130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8138] or.b d0, $3333.w uses Op8138 ---------- -Op8138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8139] or.b d0, $33333333.l uses Op8139 ---------- -Op8139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - orrs r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8150] or.w d0, (a0) uses Op8150 ---------- -Op8150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8158] or.w d0, (a0)+ uses Op8158 ---------- -Op8158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8160] or.w d0, -(a0) uses Op8160 ---------- -Op8160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8168] or.w d0, ($3333,a0) uses Op8168 ---------- -Op8168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8170] or.w d0, ($33,a0,d3.w*2) uses Op8170 ---------- -Op8170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8178] or.w d0, $3333.w uses Op8178 ---------- -Op8178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8179] or.w d0, $33333333.l uses Op8179 ---------- -Op8179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - orrs r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8190] or.l d0, (a0) uses Op8190 ---------- -Op8190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8198] or.l d0, (a0)+ uses Op8198 ---------- -Op8198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81a0] or.l d0, -(a0) uses Op81a0 ---------- -Op81a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81a8] or.l d0, ($3333,a0) uses Op81a8 ---------- -Op81a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81b0] or.l d0, ($33,a0,d3.w*2) uses Op81b0 ---------- -Op81b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81b8] or.l d0, $3333.w uses Op81b8 ---------- -Op81b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81b9] or.l d0, $33333333.l uses Op81b9 ---------- -Op81b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - orrs r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [81c0] divs.w d0, d0 uses Op81c0 ---------- -Op81c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81c0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81c0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81c0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81c0 - -Divide81c0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81c0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81c0 ;@ overflow! - -wrendofop81c0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81c0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#158 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81c0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#196 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81d0] divs.w (a0), d0 uses Op81d0 ---------- -Op81d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81d0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81d0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81d0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81d0 - -Divide81d0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81d0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81d0 ;@ overflow! - -wrendofop81d0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81d0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#162 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81d0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#200 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81d8] divs.w (a0)+, d0 uses Op81d8 ---------- -Op81d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81d8 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81d8 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81d8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81d8 - -Divide81d8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81d8 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81d8 ;@ overflow! - -wrendofop81d8: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81d8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#162 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81d8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#200 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81e0] divs.w -(a0), d0 uses Op81e0 ---------- -Op81e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81e0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81e0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81e0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81e0 - -Divide81e0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81e0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81e0 ;@ overflow! - -wrendofop81e0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81e0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#164 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81e0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#202 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81e8] divs.w ($3333,a0), d0 uses Op81e8 ---------- -Op81e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81e8 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81e8 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81e8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81e8 - -Divide81e8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81e8 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81e8 ;@ overflow! - -wrendofop81e8: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81e8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#166 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81e8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#204 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81f0] divs.w ($33,a0,d3.w*2), d0 uses Op81f0 ---------- -Op81f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81f0 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81f0 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81f0: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81f0 - -Divide81f0: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81f0 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81f0 ;@ overflow! - -wrendofop81f0: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81f0: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#168 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81f0: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#206 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81f8] divs.w $3333.w, d0 uses Op81f8 ---------- -Op81f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81f8 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81f8 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81f8: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81f8 - -Divide81f8: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81f8 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81f8 ;@ overflow! - -wrendofop81f8: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81f8: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#166 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81f8: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#204 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81f9] divs.w $33333333.l, d0 uses Op81f9 ---------- -Op81f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81f9 ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81f9 - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81f9: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81f9 - -Divide81f9: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81f9 - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81f9 ;@ overflow! - -wrendofop81f9: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81f9: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#170 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81f9: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#208 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81fa] divs.w ($3333,pc), d0; =3335 uses Op81fa ---------- -Op81fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81fa ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81fa - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81fa: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81fa - -Divide81fa: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81fa - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81fa ;@ overflow! - -wrendofop81fa: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81fa: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#166 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81fa: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#204 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81fb] divs.w ($33,pc,d3.w*2), d0; =35 uses Op81fb ---------- -Op81fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81fb ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81fb - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81fb: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81fb - -Divide81fb: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81fb - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81fb ;@ overflow! - -wrendofop81fb: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81fb: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#168 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81fb: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#206 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [81fc] divs.w #$3333, d0 uses Op81fc ---------- -Op81fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 - beq divzero81fc ;@ division by zero - - mov r12,#0 ;@ r12 = 1 or 2 if the result is negative - tst r2,r2 - orrmi r12,r12,#2 - rsbmi r2,r2,#0 ;@ Make r2 positive - - movs r0,r1,asr #16 - orrmi r12,r12,#1 - rsbmi r0,r0,#0 ;@ Make r0 positive - -;@ detect the nasty 0x80000000 / -1 situation - mov r3,r2,asr #31 - eors r3,r3,r1,asr #16 - beq wrendofop81fc - -;@ Divide r2 by r0 - mov r3,#0 - mov r1,r0 - -;@ Shift up divisor till it's just less than numerator -Shift81fc: - cmp r1,r2,lsr #1 - movls r1,r1,lsl #1 - bcc Shift81fc - -Divide81fc: - cmp r2,r1 - adc r3,r3,r3 ;@ Double r3 and add 1 if carry set - subcs r2,r2,r1 - teq r1,r0 - movne r1,r1,lsr #1 - bne Divide81fc - -;@r3==quotient,r2==remainder - and r1,r12,#1 - teq r1,r12,lsr #1 - rsbne r3,r3,#0 ;@ negate if quotient is negative - tst r12,#2 - rsbne r2,r2,#0 ;@ negate the remainder if divident was negative - - mov r1,r3,asl #16 - cmp r3,r1,asr #16 ;@ signed overflow? - orrne r10,r10,#0x10000000 ;@ set overflow flag - bne endofop81fc ;@ overflow! - -wrendofop81fc: - movs r1,r3,lsl #16 ;@ Clip to 16-bits - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - mov r1,r1,lsr #16 - orr r1,r1,r2,lsl #16 ;@ Insert remainder - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - -endofop81fc: - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#162 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -divzero81fc: - mov r0,#5 ;@ Divide by zero - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#200 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ ---------- [8f08] sbcd -(a0), -(a7) uses Op8f08 ---------- -Op8f08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [8f0f] sbcd -(a7), -(a7) uses Op8f0f ---------- -Op8f0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - mov r12,#0 ;@ corf - adc r1,r1,#0 - sub r1,r2,r1 - cmp r1,#0x0f - movhi r12,#6 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - sub r1,r1,r6 - tst r1,#0x80 - orrne r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r1,r12 - orrlt r10,r10,#0x20000000 ;@ C - cmp r1,#0xff - addhi r1,#0xa0 - sub r12,r1,r12 - movs r0,r12,lsl #24 - bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9000] sub.b d0, d0 uses Op9000 ---------- -Op9000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9010] sub.b (a0), d0 uses Op9010 ---------- -Op9010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9018] sub.b (a0)+, d0 uses Op9018 ---------- -Op9018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [901f] sub.b (a7)+, d0 uses Op901f ---------- -Op901f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9020] sub.b -(a0), d0 uses Op9020 ---------- -Op9020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9027] sub.b -(a7), d0 uses Op9027 ---------- -Op9027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9028] sub.b ($3333,a0), d0 uses Op9028 ---------- -Op9028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9030] sub.b ($33,a0,d3.w*2), d0 uses Op9030 ---------- -Op9030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9038] sub.b $3333.w, d0 uses Op9038 ---------- -Op9038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9039] sub.b $33333333.l, d0 uses Op9039 ---------- -Op9039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [903a] sub.b ($3333,pc), d0; =3335 uses Op903a ---------- -Op903a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [903b] sub.b ($33,pc,d3.w*2), d0; =35 uses Op903b ---------- -Op903b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [903c] sub.b #$33, d0 uses Op903c ---------- -Op903c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9040] sub.w d0, d0 uses Op9040 ---------- -Op9040: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9050] sub.w (a0), d0 uses Op9050 ---------- -Op9050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9058] sub.w (a0)+, d0 uses Op9058 ---------- -Op9058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9060] sub.w -(a0), d0 uses Op9060 ---------- -Op9060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9068] sub.w ($3333,a0), d0 uses Op9068 ---------- -Op9068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9070] sub.w ($33,a0,d3.w*2), d0 uses Op9070 ---------- -Op9070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9078] sub.w $3333.w, d0 uses Op9078 ---------- -Op9078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9079] sub.w $33333333.l, d0 uses Op9079 ---------- -Op9079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [907a] sub.w ($3333,pc), d0; =3335 uses Op907a ---------- -Op907a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [907b] sub.w ($33,pc,d3.w*2), d0; =35 uses Op907b ---------- -Op907b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [907c] sub.w #$3333, d0 uses Op907c ---------- -Op907c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9080] sub.l d0, d0 uses Op9080 ---------- -Op9080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9090] sub.l (a0), d0 uses Op9090 ---------- -Op9090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9098] sub.l (a0)+, d0 uses Op9098 ---------- -Op9098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90a0] sub.l -(a0), d0 uses Op90a0 ---------- -Op90a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90a8] sub.l ($3333,a0), d0 uses Op90a8 ---------- -Op90a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90b0] sub.l ($33,a0,d3.w*2), d0 uses Op90b0 ---------- -Op90b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90b8] sub.l $3333.w, d0 uses Op90b8 ---------- -Op90b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90b9] sub.l $33333333.l, d0 uses Op90b9 ---------- -Op90b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90ba] sub.l ($3333,pc), d0; =3335 uses Op90ba ---------- -Op90ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90bb] sub.l ($33,pc,d3.w*2), d0; =35 uses Op90bb ---------- -Op90bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90bc] sub.l #$33333333, d0 uses Op90bc ---------- -Op90bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90c0] suba.w d0, a0 uses Op90c0 ---------- -Op90c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90d0] suba.w (a0), a0 uses Op90d0 ---------- -Op90d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90d8] suba.w (a0)+, a0 uses Op90d8 ---------- -Op90d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90e0] suba.w -(a0), a0 uses Op90e0 ---------- -Op90e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90e8] suba.w ($3333,a0), a0 uses Op90e8 ---------- -Op90e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90f0] suba.w ($33,a0,d3.w*2), a0 uses Op90f0 ---------- -Op90f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90f8] suba.w $3333.w, a0 uses Op90f8 ---------- -Op90f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90f9] suba.w $33333333.l, a0 uses Op90f9 ---------- -Op90f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90fa] suba.w ($3333,pc), a0; =3335 uses Op90fa ---------- -Op90fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90fb] suba.w ($33,pc,d3.w*2), a0; =35 uses Op90fb ---------- -Op90fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [90fc] suba.w #$3333, a0 uses Op90fc ---------- -Op90fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - sub r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9100] subx.b d0, d0 uses Op9100 ---------- -Op9100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - mov r6,r6,asl #24 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9108] subx.b -(a0), -(a0) uses Op9108 ---------- -Op9108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [910f] subx.b -(a7), -(a0) uses Op910f ---------- -Op910f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9110] sub.b d0, (a0) uses Op9110 ---------- -Op9110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9118] sub.b d0, (a0)+ uses Op9118 ---------- -Op9118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [911f] sub.b d0, (a7)+ uses Op911f ---------- -Op911f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9120] sub.b d0, -(a0) uses Op9120 ---------- -Op9120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9127] sub.b d0, -(a7) uses Op9127 ---------- -Op9127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9128] sub.b d0, ($3333,a0) uses Op9128 ---------- -Op9128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9130] sub.b d0, ($33,a0,d3.w*2) uses Op9130 ---------- -Op9130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9138] sub.b d0, $3333.w uses Op9138 ---------- -Op9138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9139] sub.b d0, $33333333.l uses Op9139 ---------- -Op9139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - subs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9140] subx.w d0, d0 uses Op9140 ---------- -Op9140: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r6,r6,asl #16 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9148] subx.w -(a0), -(a0) uses Op9148 ---------- -Op9148: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r6,r0,asl #16 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9150] sub.w d0, (a0) uses Op9150 ---------- -Op9150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9158] sub.w d0, (a0)+ uses Op9158 ---------- -Op9158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9160] sub.w d0, -(a0) uses Op9160 ---------- -Op9160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9168] sub.w d0, ($3333,a0) uses Op9168 ---------- -Op9168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9170] sub.w d0, ($33,a0,d3.w*2) uses Op9170 ---------- -Op9170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9178] sub.w d0, $3333.w uses Op9178 ---------- -Op9178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9179] sub.w d0, $33333333.l uses Op9179 ---------- -Op9179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - subs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9180] subx.l d0, d0 uses Op9180 ---------- -Op9180: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9188] subx.l -(a0), -(a0) uses Op9188 ---------- -Op9188: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9190] sub.l d0, (a0) uses Op9190 ---------- -Op9190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9198] sub.l d0, (a0)+ uses Op9198 ---------- -Op9198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91a0] sub.l d0, -(a0) uses Op91a0 ---------- -Op91a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91a8] sub.l d0, ($3333,a0) uses Op91a8 ---------- -Op91a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91b0] sub.l d0, ($33,a0,d3.w*2) uses Op91b0 ---------- -Op91b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91b8] sub.l d0, $3333.w uses Op91b8 ---------- -Op91b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91b9] sub.l d0, $33333333.l uses Op91b9 ---------- -Op91b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - subs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91c0] suba.l d0, a0 uses Op91c0 ---------- -Op91c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91d0] suba.l (a0), a0 uses Op91d0 ---------- -Op91d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91d8] suba.l (a0)+, a0 uses Op91d8 ---------- -Op91d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91e0] suba.l -(a0), a0 uses Op91e0 ---------- -Op91e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91e8] suba.l ($3333,a0), a0 uses Op91e8 ---------- -Op91e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91f0] suba.l ($33,a0,d3.w*2), a0 uses Op91f0 ---------- -Op91f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91f8] suba.l $3333.w, a0 uses Op91f8 ---------- -Op91f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91f9] suba.l $33333333.l, a0 uses Op91f9 ---------- -Op91f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91fa] suba.l ($3333,pc), a0; =3335 uses Op91fa ---------- -Op91fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91fb] suba.l ($33,pc,d3.w*2), a0; =35 uses Op91fb ---------- -Op91fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [91fc] suba.l #$33333333, a0 uses Op91fc ---------- -Op91fc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - sub r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9f08] subx.b -(a0), -(a7) uses Op9f08 ---------- -Op9f08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [9f0f] subx.b -(a7), -(a7) uses Op9f0f ---------- -Op9f0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - mvn r2,r2 ;@ Invert it - tst r2,r2,lsl #3 ;@ Get into Carry - - rscs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b000] cmp.b d0, d0 uses Opb000 ---------- -Opb000: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b010] cmp.b (a0), d0 uses Opb010 ---------- -Opb010: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b018] cmp.b (a0)+, d0 uses Opb018 ---------- -Opb018: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b01f] cmp.b (a7)+, d0 uses Opb01f ---------- -Opb01f: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b020] cmp.b -(a0), d0 uses Opb020 ---------- -Opb020: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b027] cmp.b -(a7), d0 uses Opb027 ---------- -Opb027: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b028] cmp.b ($3333,a0), d0 uses Opb028 ---------- -Opb028: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b030] cmp.b ($33,a0,d3.w*2), d0 uses Opb030 ---------- -Opb030: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b039] cmp.b $33333333.l, d0 uses Opb039 ---------- -Opb039: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b03a] cmp.b ($3333,pc), d0; =3335 uses Opb03a ---------- -Opb03a: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b03b] cmp.b ($33,pc,d3.w*2), d0; =35 uses Opb03b ---------- -Opb03b: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b03c] cmp.b #$33, d0 uses Opb03c ---------- -Opb03c: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b040] cmp.w d0, d0 uses Opb040 ---------- -Opb040: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b050] cmp.w (a0), d0 uses Opb050 ---------- -Opb050: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b058] cmp.w (a0)+, d0 uses Opb058 ---------- -Opb058: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b060] cmp.w -(a0), d0 uses Opb060 ---------- -Opb060: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b068] cmp.w ($3333,a0), d0 uses Opb068 ---------- -Opb068: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b070] cmp.w ($33,a0,d3.w*2), d0 uses Opb070 ---------- -Opb070: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b078] cmp.w $3333.w, d0 uses Opb078 ---------- -Opb078: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b079] cmp.w $33333333.l, d0 uses Opb079 ---------- -Opb079: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b07a] cmp.w ($3333,pc), d0; =3335 uses Opb07a ---------- -Opb07a: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b07b] cmp.w ($33,pc,d3.w*2), d0; =35 uses Opb07b ---------- -Opb07b: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b07c] cmp.w #$3333, d0 uses Opb07c ---------- -Opb07c: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - rsbs r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b080] cmp.l d0, d0 uses Opb080 ---------- -Opb080: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b090] cmp.l (a0), d0 uses Opb090 ---------- -Opb090: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b098] cmp.l (a0)+, d0 uses Opb098 ---------- -Opb098: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0a0] cmp.l -(a0), d0 uses Opb0a0 ---------- -Opb0a0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0a8] cmp.l ($3333,a0), d0 uses Opb0a8 ---------- -Opb0a8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0b0] cmp.l ($33,a0,d3.w*2), d0 uses Opb0b0 ---------- -Opb0b0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0b9] cmp.l $33333333.l, d0 uses Opb0b9 ---------- -Opb0b9: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0ba] cmp.l ($3333,pc), d0; =3335 uses Opb0ba ---------- -Opb0ba: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0bb] cmp.l ($33,pc,d3.w*2), d0; =35 uses Opb0bb ---------- -Opb0bb: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0bc] cmp.l #$33333333, d0 uses Opb0bc ---------- -Opb0bc: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - rsbs r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0c0] cmpa.w d0, a0 uses Opb0c0 ---------- -Opb0c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0d0] cmpa.w (a0), a0 uses Opb0d0 ---------- -Opb0d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0d8] cmpa.w (a0)+, a0 uses Opb0d8 ---------- -Opb0d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0e0] cmpa.w -(a0), a0 uses Opb0e0 ---------- -Opb0e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0e8] cmpa.w ($3333,a0), a0 uses Opb0e8 ---------- -Opb0e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0f0] cmpa.w ($33,a0,d3.w*2), a0 uses Opb0f0 ---------- -Opb0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0f8] cmpa.w $3333.w, a0 uses Opb0f8 ---------- -Opb0f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0f9] cmpa.w $33333333.l, a0 uses Opb0f9 ---------- -Opb0f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0fa] cmpa.w ($3333,pc), a0; =3335 uses Opb0fa ---------- -Opb0fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0fb] cmpa.w ($33,pc,d3.w*2), a0; =35 uses Opb0fb ---------- -Opb0fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b0fc] cmpa.w #$3333, a0 uses Opb0fc ---------- -Opb0fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - - cmp r1,r0,asr #16 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b100] eor.b d0, d0 uses Opb100 ---------- -Opb100: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b108] cmpm.b (a0)+, (a0)+ uses Opb108 ---------- -Opb108: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b10f] cmpm.b (a7)+, (a0)+ uses Opb10f ---------- -Opb10f: -;@ Get src operand into r11: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b110] eor.b d0, (a0) uses Opb110 ---------- -Opb110: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b118] eor.b d0, (a0)+ uses Opb118 ---------- -Opb118: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b11f] eor.b d0, (a7)+ uses Opb11f ---------- -Opb11f: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b120] eor.b d0, -(a0) uses Opb120 ---------- -Opb120: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b127] eor.b d0, -(a7) uses Opb127 ---------- -Opb127: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b128] eor.b d0, ($3333,a0) uses Opb128 ---------- -Opb128: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b130] eor.b d0, ($33,a0,d3.w*2) uses Opb130 ---------- -Opb130: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b138] eor.b d0, $3333.w uses Opb138 ---------- -Opb138: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b139] eor.b d0, $33333333.l uses Opb139 ---------- -Opb139: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #24 - -;@ Do arithmetic: - eors r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b140] eor.w d0, d0 uses Opb140 ---------- -Opb140: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b148] cmpm.w (a0)+, (a0)+ uses Opb148 ---------- -Opb148: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r11,r0,asl #16 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - - rsbs r0,r11,r0,asl #16 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b150] eor.w d0, (a0) uses Opb150 ---------- -Opb150: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b158] eor.w d0, (a0)+ uses Opb158 ---------- -Opb158: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b160] eor.w d0, -(a0) uses Opb160 ---------- -Opb160: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b168] eor.w d0, ($3333,a0) uses Opb168 ---------- -Opb168: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b170] eor.w d0, ($33,a0,d3.w*2) uses Opb170 ---------- -Opb170: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b178] eor.w d0, $3333.w uses Opb178 ---------- -Opb178: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b179] eor.w d0, $33333333.l uses Opb179 ---------- -Opb179: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - mov r0,r0,asl #16 - -;@ Do arithmetic: - eors r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b180] eor.l d0, d0 uses Opb180 ---------- -Opb180: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x000f -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b188] cmpm.l (a0)+, (a0)+ uses Opb188 ---------- -Opb188: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r11,r0 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x1e00 - ldr r0,[r7,r2,lsr #7] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsr #7] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - - rsbs r0,r11,r0 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b190] eor.l d0, (a0) uses Opb190 ---------- -Opb190: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b198] eor.l d0, (a0)+ uses Opb198 ---------- -Opb198: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1a0] eor.l d0, -(a0) uses Opb1a0 ---------- -Opb1a0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1a8] eor.l d0, ($3333,a0) uses Opb1a8 ---------- -Opb1a8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1b0] eor.l d0, ($33,a0,d3.w*2) uses Opb1b0 ---------- -Opb1b0: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1b8] eor.l d0, $3333.w uses Opb1b8 ---------- -Opb1b8: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1b9] eor.l d0, $33333333.l uses Opb1b9 ---------- -Opb1b9: -;@ Get EA into r11 and value into r0: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Get register operand into r1: -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - eors r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1c0] cmpa.l d0, a0 uses Opb1c0 ---------- -Opb1c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1d0] cmpa.l (a0), a0 uses Opb1d0 ---------- -Opb1d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1d8] cmpa.l (a0)+, a0 uses Opb1d8 ---------- -Opb1d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1e0] cmpa.l -(a0), a0 uses Opb1e0 ---------- -Opb1e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1e8] cmpa.l ($3333,a0), a0 uses Opb1e8 ---------- -Opb1e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1f0] cmpa.l ($33,a0,d3.w*2), a0 uses Opb1f0 ---------- -Opb1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1f8] cmpa.l $3333.w, a0 uses Opb1f8 ---------- -Opb1f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1f9] cmpa.l $33333333.l, a0 uses Opb1f9 ---------- -Opb1f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1fa] cmpa.l ($3333,pc), a0; =3335 uses Opb1fa ---------- -Opb1fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1fb] cmpa.l ($33,pc,d3.w*2), a0; =35 uses Opb1fb ---------- -Opb1fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [b1fc] cmpa.l #$33333333, a0 uses Opb1fc ---------- -Opb1fc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x1e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - - cmp r1,r0 ;@ Defines NZCV - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [bf08] cmpm.b (a0)+, (a7)+ uses Opbf08 ---------- -Opbf08: -;@ Get src operand into r11: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [bf0f] cmpm.b (a7)+, (a7)+ uses Opbf0f ---------- -Opbf0f: -;@ Get src operand into r11: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r11: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r11,r0,asl #24 - -;@ Get dst operand into r0: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - rsbs r0,r11,r0,asl #24 - mrs r10,cpsr ;@ r10=flags - eor r10,r10,#0x20000000 ;@ Invert carry - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c000] and.b d0, d0 uses Opc000 ---------- -Opc000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c010] and.b (a0), d0 uses Opc010 ---------- -Opc010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c018] and.b (a0)+, d0 uses Opc018 ---------- -Opc018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c01f] and.b (a7)+, d0 uses Opc01f ---------- -Opc01f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c020] and.b -(a0), d0 uses Opc020 ---------- -Opc020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c027] and.b -(a7), d0 uses Opc027 ---------- -Opc027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c028] and.b ($3333,a0), d0 uses Opc028 ---------- -Opc028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c030] and.b ($33,a0,d3.w*2), d0 uses Opc030 ---------- -Opc030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c038] and.b $3333.w, d0 uses Opc038 ---------- -Opc038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c039] and.b $33333333.l, d0 uses Opc039 ---------- -Opc039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c03a] and.b ($3333,pc), d0; =3335 uses Opc03a ---------- -Opc03a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c03b] and.b ($33,pc,d3.w*2), d0; =35 uses Opc03b ---------- -Opc03b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c03c] and.b #$33, d0 uses Opc03c ---------- -Opc03c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c050] and.w (a0), d0 uses Opc050 ---------- -Opc050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c058] and.w (a0)+, d0 uses Opc058 ---------- -Opc058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c060] and.w -(a0), d0 uses Opc060 ---------- -Opc060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c068] and.w ($3333,a0), d0 uses Opc068 ---------- -Opc068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c070] and.w ($33,a0,d3.w*2), d0 uses Opc070 ---------- -Opc070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c078] and.w $3333.w, d0 uses Opc078 ---------- -Opc078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c079] and.w $33333333.l, d0 uses Opc079 ---------- -Opc079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c07a] and.w ($3333,pc), d0; =3335 uses Opc07a ---------- -Opc07a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c07b] and.w ($33,pc,d3.w*2), d0; =35 uses Opc07b ---------- -Opc07b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c07c] and.w #$3333, d0 uses Opc07c ---------- -Opc07c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c080] and.l d0, d0 uses Opc080 ---------- -Opc080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c090] and.l (a0), d0 uses Opc090 ---------- -Opc090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c098] and.l (a0)+, d0 uses Opc098 ---------- -Opc098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0a0] and.l -(a0), d0 uses Opc0a0 ---------- -Opc0a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0a8] and.l ($3333,a0), d0 uses Opc0a8 ---------- -Opc0a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0b0] and.l ($33,a0,d3.w*2), d0 uses Opc0b0 ---------- -Opc0b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0b8] and.l $3333.w, d0 uses Opc0b8 ---------- -Opc0b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0b9] and.l $33333333.l, d0 uses Opc0b9 ---------- -Opc0b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0ba] and.l ($3333,pc), d0; =3335 uses Opc0ba ---------- -Opc0ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0bb] and.l ($33,pc,d3.w*2), d0; =35 uses Opc0bb ---------- -Opc0bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0bc] and.l #$33333333, d0 uses Opc0bc ---------- -Opc0bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0c0] mulu.w d0, d0 uses Opc0c0 ---------- -Opc0c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0d0] mulu.w (a0), d0 uses Opc0d0 ---------- -Opc0d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0d8] mulu.w (a0)+, d0 uses Opc0d8 ---------- -Opc0d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0e0] mulu.w -(a0), d0 uses Opc0e0 ---------- -Opc0e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0e8] mulu.w ($3333,a0), d0 uses Opc0e8 ---------- -Opc0e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0f0] mulu.w ($33,a0,d3.w*2), d0 uses Opc0f0 ---------- -Opc0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0f8] mulu.w $3333.w, d0 uses Opc0f8 ---------- -Opc0f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0f9] mulu.w $33333333.l, d0 uses Opc0f9 ---------- -Opc0f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#66 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0fa] mulu.w ($3333,pc), d0; =3335 uses Opc0fa ---------- -Opc0fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0fb] mulu.w ($33,pc,d3.w*2), d0; =35 uses Opc0fb ---------- -Opc0fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c0fc] mulu.w #$3333, d0 uses Opc0fc ---------- -Opc0fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,lsr #16 - mov r2,r2,lsl #16 - mov r2,r2,lsr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c100] abcd d0, d0 uses Opc100 ---------- -Opc100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c108] abcd -(a0), -(a0) uses Opc108 ---------- -Opc108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c10f] abcd -(a7), -(a0) uses Opc10f ---------- -Opc10f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x0e00 - orr r2,r2,#0x1000 ;@ A0-7 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c110] and.b d0, (a0) uses Opc110 ---------- -Opc110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c118] and.b d0, (a0)+ uses Opc118 ---------- -Opc118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c11f] and.b d0, (a7)+ uses Opc11f ---------- -Opc11f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c120] and.b d0, -(a0) uses Opc120 ---------- -Opc120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c127] and.b d0, -(a7) uses Opc127 ---------- -Opc127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c128] and.b d0, ($3333,a0) uses Opc128 ---------- -Opc128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c130] and.b d0, ($33,a0,d3.w*2) uses Opc130 ---------- -Opc130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c138] and.b d0, $3333.w uses Opc138 ---------- -Opc138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c139] and.b d0, $33333333.l uses Opc139 ---------- -Opc139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - ands r1,r0,r1,asl #24 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c140] exg d0, d0 uses Opc140 ---------- -Opc140: - and r2,r8,#0x0e00 ;@ Find T register - and r3,r8,#0x000f ;@ Find S register - - ldr r0,[r7,r2,lsr #7] ;@ Get T - ldr r1,[r7,r3,lsl #2] ;@ Get S - - str r0,[r7,r3,lsl #2] ;@ T->S - str r1,[r7,r2,lsr #7] ;@ S->T - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c148] exg a0, a0 uses Opc148 ---------- -Opc148: - and r2,r8,#0x0e00 ;@ Find T register - and r3,r8,#0x000f ;@ Find S register - orr r2,r2,#0x1000 ;@ T is an address register - - ldr r0,[r7,r2,lsr #7] ;@ Get T - ldr r1,[r7,r3,lsl #2] ;@ Get S - - str r0,[r7,r3,lsl #2] ;@ T->S - str r1,[r7,r2,lsr #7] ;@ S->T - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c150] and.w d0, (a0) uses Opc150 ---------- -Opc150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c158] and.w d0, (a0)+ uses Opc158 ---------- -Opc158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c160] and.w d0, -(a0) uses Opc160 ---------- -Opc160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c168] and.w d0, ($3333,a0) uses Opc168 ---------- -Opc168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c170] and.w d0, ($33,a0,d3.w*2) uses Opc170 ---------- -Opc170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c178] and.w d0, $3333.w uses Opc178 ---------- -Opc178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c179] and.w d0, $33333333.l uses Opc179 ---------- -Opc179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - ands r1,r0,r1,asl #16 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c188] exg a0, d0 uses Opc188 ---------- -Opc188: - and r2,r8,#0x0e00 ;@ Find T register - and r3,r8,#0x000f ;@ Find S register - - ldr r0,[r7,r2,lsr #7] ;@ Get T - ldr r1,[r7,r3,lsl #2] ;@ Get S - - str r0,[r7,r3,lsl #2] ;@ T->S - str r1,[r7,r2,lsr #7] ;@ S->T - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c190] and.l d0, (a0) uses Opc190 ---------- -Opc190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c198] and.l d0, (a0)+ uses Opc198 ---------- -Opc198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1a0] and.l d0, -(a0) uses Opc1a0 ---------- -Opc1a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1a8] and.l d0, ($3333,a0) uses Opc1a8 ---------- -Opc1a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1b0] and.l d0, ($33,a0,d3.w*2) uses Opc1b0 ---------- -Opc1b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1b8] and.l d0, $3333.w uses Opc1b8 ---------- -Opc1b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1b9] and.l d0, $33333333.l uses Opc1b9 ---------- -Opc1b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - ands r1,r0,r1 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1c0] muls.w d0, d0 uses Opc1c0 ---------- -Opc1c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#54 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1d0] muls.w (a0), d0 uses Opc1d0 ---------- -Opc1d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1d8] muls.w (a0)+, d0 uses Opc1d8 ---------- -Opc1d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1e0] muls.w -(a0), d0 uses Opc1e0 ---------- -Opc1e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#60 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1e8] muls.w ($3333,a0), d0 uses Opc1e8 ---------- -Opc1e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1f0] muls.w ($33,a0,d3.w*2), d0 uses Opc1f0 ---------- -Opc1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1f8] muls.w $3333.w, d0 uses Opc1f8 ---------- -Opc1f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1f9] muls.w $33333333.l, d0 uses Opc1f9 ---------- -Opc1f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#66 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1fa] muls.w ($3333,pc), d0; =3335 uses Opc1fa ---------- -Opc1fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#62 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1fb] muls.w ($33,pc,d3.w*2), d0; =35 uses Opc1fb ---------- -Opc1fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#64 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [c1fc] muls.w #$3333, d0 uses Opc1fc ---------- -Opc1fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r2: - ldr r2,[r7,r11,lsr #7] - - movs r1,r0,asl #16 -;@ Get 16-bit signs right: - mov r0,r1,asr #16 - mov r2,r2,lsl #16 - mov r2,r2,asr #16 - - muls r1,r2,r0 - and r10,r1,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#58 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [cf08] abcd -(a0), -(a7) uses Opcf08 ---------- -Opcf08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [cf0f] abcd -(a7), -(a7) uses Opcf0f ---------- -Opcf0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - - bic r10,r10,#0xb1000000 ;@ clear all flags except old Z - ldr r1,[r7,#0x4c] ;@ Get X bit - and r2,r0,#0x0f - movs r12,r1,lsl #3 ;@ X into carry - and r1,r6,#0x0f - adc r1,r2,r1 - cmp r1,#9 - and r0,r0,#0xf0 - and r6,r6,#0xf0 - add r1,r1,r0 - add r1,r1,r6 - mov r12,r1 - addhi r12,#6 ;@ Decimal adjust units - tst r1,#0x80 - orreq r10,r10,#0x10000000 ;@ Undefined V behavior - cmp r12,#0x9f - orrhi r10,r10,#0x20000000 ;@ C - subhi r12,r12,#0xa0 - movs r0,r12,lsl #24 - bicpl r10,r10,#0x10000000 ;@ Undefined V behavior part II - orrmi r10,r10,#0x80000000 ;@ Undefined N behavior - bicne r10,r10,#0x40000000 ;@ Z flag - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a7)' (address in r11): - mov r1,r0,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d000] add.b d0, d0 uses Opd000 ---------- -Opd000: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d010] add.b (a0), d0 uses Opd010 ---------- -Opd010: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d018] add.b (a0)+, d0 uses Opd018 ---------- -Opd018: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d01f] add.b (a7)+, d0 uses Opd01f ---------- -Opd01f: -;@ EaCalc : Get '(a7)+' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d020] add.b -(a0), d0 uses Opd020 ---------- -Opd020: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d027] add.b -(a7), d0 uses Opd027 ---------- -Opd027: -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d028] add.b ($3333,a0), d0 uses Opd028 ---------- -Opd028: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d030] add.b ($33,a0,d3.w*2), d0 uses Opd030 ---------- -Opd030: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d038] add.b $3333.w, d0 uses Opd038 ---------- -Opd038: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d039] add.b $33333333.l, d0 uses Opd039 ---------- -Opd039: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d03a] add.b ($3333,pc), d0; =3335 uses Opd03a ---------- -Opd03a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d03b] add.b ($33,pc,d3.w*2), d0; =35 uses Opd03b ---------- -Opd03b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x80] ;@ Call fetch8(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d03c] add.b #$33, d0 uses Opd03c ---------- -Opd03c: -;@ EaCalc : Get '#$33' into r0: - ldrsb r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$33' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: r1 into register[r11]: - strb r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d050] add.w (a0), d0 uses Opd050 ---------- -Opd050: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d058] add.w (a0)+, d0 uses Opd058 ---------- -Opd058: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d060] add.w -(a0), d0 uses Opd060 ---------- -Opd060: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d068] add.w ($3333,a0), d0 uses Opd068 ---------- -Opd068: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d070] add.w ($33,a0,d3.w*2), d0 uses Opd070 ---------- -Opd070: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d078] add.w $3333.w, d0 uses Opd078 ---------- -Opd078: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d079] add.w $33333333.l, d0 uses Opd079 ---------- -Opd079: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d07a] add.w ($3333,pc), d0; =3335 uses Opd07a ---------- -Opd07a: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d07b] add.w ($33,pc,d3.w*2), d0; =35 uses Opd07b ---------- -Opd07b: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d07c] add.w #$3333, d0 uses Opd07c ---------- -Opd07c: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: r1 into register[r11]: - strh r1,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d080] add.l d0, d0 uses Opd080 ---------- -Opd080: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d090] add.l (a0), d0 uses Opd090 ---------- -Opd090: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d098] add.l (a0)+, d0 uses Opd098 ---------- -Opd098: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0a0] add.l -(a0), d0 uses Opd0a0 ---------- -Opd0a0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0a8] add.l ($3333,a0), d0 uses Opd0a8 ---------- -Opd0a8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0b0] add.l ($33,a0,d3.w*2), d0 uses Opd0b0 ---------- -Opd0b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0b8] add.l $3333.w, d0 uses Opd0b8 ---------- -Opd0b8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0b9] add.l $33333333.l, d0 uses Opd0b9 ---------- -Opd0b9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0ba] add.l ($3333,pc), d0; =3335 uses Opd0ba ---------- -Opd0ba: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0bb] add.l ($33,pc,d3.w*2), d0; =35 uses Opd0bb ---------- -Opd0bb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0bc] add.l #$33333333, d0 uses Opd0bc ---------- -Opd0bc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0c0] adda.w d0, a0 uses Opd0c0 ---------- -Opd0c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0d0] adda.w (a0), a0 uses Opd0d0 ---------- -Opd0d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0d8] adda.w (a0)+, a0 uses Opd0d8 ---------- -Opd0d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0e0] adda.w -(a0), a0 uses Opd0e0 ---------- -Opd0e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0e8] adda.w ($3333,a0), a0 uses Opd0e8 ---------- -Opd0e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0f0] adda.w ($33,a0,d3.w*2), a0 uses Opd0f0 ---------- -Opd0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0f8] adda.w $3333.w, a0 uses Opd0f8 ---------- -Opd0f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0f9] adda.w $33333333.l, a0 uses Opd0f9 ---------- -Opd0f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0fa] adda.w ($3333,pc), a0; =3335 uses Opd0fa ---------- -Opd0fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0fb] adda.w ($33,pc,d3.w*2), a0; =35 uses Opd0fb ---------- -Opd0fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x84] ;@ Call fetch16(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d0fc] adda.w #$3333, a0 uses Opd0fc ---------- -Opd0fc: -;@ EaCalc : Get '#$3333' into r0: - ldrsh r0,[r4],#2 ;@ Fetch immediate value -;@ EaRead : Read '#$3333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - mov r0,r0,asl #16 - - add r1,r1,r0,asr #16 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d100] addx.b d0, d0 uses Opd100 ---------- -Opd100: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - - mov r6,r6,asl #24 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #24 - strb r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d108] addx.b -(a0), -(a0) uses Opd108 ---------- -Opd108: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d10f] addx.b -(a7), -(a0) uses Opd10f ---------- -Opd10f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d110] add.b d0, (a0) uses Opd110 ---------- -Opd110: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d118] add.b d0, (a0)+ uses Opd118 ---------- -Opd118: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#1 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d11f] add.b d0, (a7)+ uses Opd11f ---------- -Opd11f: -;@ EaCalc : Get '(a7)+' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '(a7)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '(a7)+' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d120] add.b d0, -(a0) uses Opd120 ---------- -Opd120: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#1 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d127] add.b d0, -(a7) uses Opd127 ---------- -Opd127: -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d128] add.b d0, ($3333,a0) uses Opd128 ---------- -Opd128: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d130] add.b d0, ($33,a0,d3.w*2) uses Opd130 ---------- -Opd130: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d138] add.b d0, $3333.w uses Opd138 ---------- -Opd138: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d139] add.b d0, $33333333.l uses Opd139 ---------- -Opd139: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #24 - adds r1,r0,r1,asl #24 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #24 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - and r1,r1,#0xff - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d140] addx.w d0, d0 uses Opd140 ---------- -Opd140: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 - mov r11,r11,lsr #7 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - - mov r6,r6,asl #16 - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #16 - - adcs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - mov r1,r1,lsr #16 - strh r1,[r7,r11] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#4 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d148] addx.w -(a0), -(a0) uses Opd148 ---------- -Opd148: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r6,r0,asl #16 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #16 - - adcs r1,r6,r0,asl #16 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #16 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d150] add.w d0, (a0) uses Opd150 ---------- -Opd150: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d158] add.w d0, (a0)+ uses Opd158 ---------- -Opd158: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d160] add.w d0, -(a0) uses Opd160 ---------- -Opd160: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d168] add.w d0, ($3333,a0) uses Opd168 ---------- -Opd168: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d170] add.w d0, ($33,a0,d3.w*2) uses Opd170 ---------- -Opd170: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d178] add.w d0, $3333.w uses Opd178 ---------- -Opd178: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d179] add.w d0, $33333333.l uses Opd179 ---------- -Opd179: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - mov r0,r0,asl #16 - adds r1,r0,r1,asl #16 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: - mov r1,r1,asr #16 -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - mov r1,r1,lsl #16 - mov r1,r1,lsr #16 ;@ zero extend - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d180] addx.l d0, d0 uses Opd180 ---------- -Opd180: -;@ Get src/dest reg vals -;@ EaCalc : Get register index into r6: - and r6,r8,#0x0007 -;@ EaRead : Read register[r6] into r6: - ldr r6,[r7,r6,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0e00 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsr #7] - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - adcs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d188] addx.l -(a0), -(a0) uses Opd188 ---------- -Opd188: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - mov r6,r0 - -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x1e00 - ldr r11,[r7,r2,lsr #7] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsr #7] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - adcs r1,r6,r0 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#30 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d190] add.l d0, (a0) uses Opd190 ---------- -Opd190: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d198] add.l d0, (a0)+ uses Opd198 ---------- -Opd198: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '(a0)+' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1a0] add.l d0, -(a0) uses Opd1a0 ---------- -Opd1a0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#4 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '-(a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1a8] add.l d0, ($3333,a0) uses Opd1a8 ---------- -Opd1a8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($3333,a0)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1b0] add.l d0, ($33,a0,d3.w*2) uses Opd1b0 ---------- -Opd1b0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '($33,a0,d3.w*2)' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#26 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1b8] add.l d0, $3333.w uses Opd1b8 ---------- -Opd1b8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$3333.w' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1b9] add.l d0, $33333333.l uses Opd1b9 ---------- -Opd1b9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r1: - and r1,r8,#0x0e00 -;@ EaRead : Read register[r1] into r1: - ldr r1,[r7,r1,lsr #7] - -;@ Do arithmetic: - adds r1,r0,r1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ Save result: -;@ EaWrite: Write r1 into '$33333333.l' (address in r11): - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x7c] ;@ Call write32(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#28 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1c0] adda.l d0, a0 uses Opd1c0 ---------- -Opd1c0: -;@ EaCalc : Get register index into r0: - and r0,r8,#0x000f -;@ EaRead : Read register[r0] into r0: - ldr r0,[r7,r0,lsl #2] - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1d0] adda.l (a0), a0 uses Opd1d0 ---------- -Opd1d0: -;@ EaCalc : Get '(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1d8] adda.l (a0)+, a0 uses Opd1d8 ---------- -Opd1d8: -;@ EaCalc : Get '(a0)+' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - add r3,r0,#4 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1e0] adda.l -(a0), a0 uses Opd1e0 ---------- -Opd1e0: -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#4 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1e8] adda.l ($3333,a0), a0 uses Opd1e8 ---------- -Opd1e8: -;@ EaCalc : Get '($3333,a0)' into r0: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r0,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1f0] adda.l ($33,a0,d3.w*2), a0 uses Opd1f0 ---------- -Opd1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r0: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r0,r2,r3 ;@ r0=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1f8] adda.l $3333.w, a0 uses Opd1f8 ---------- -Opd1f8: -;@ EaCalc : Get '$3333.w' into r0: - ldrsh r0,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1f9] adda.l $33333333.l, a0 uses Opd1f9 ---------- -Opd1f9: -;@ EaCalc : Get '$33333333.l' into r0: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r0,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x70] ;@ Call read32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1fa] adda.l ($3333,pc), a0; =3335 uses Opd1fa ---------- -Opd1fa: -;@ EaCalc : Get '($3333,pc)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - sub r0,r4,r0 ;@ Real PC - ldrsh r2,[r4],#2 ;@ Fetch extension - add r0,r2,r0 ;@ ($nn,PC) -;@ EaRead : Read '($3333,pc)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1fb] adda.l ($33,pc,d3.w*2), a0; =35 uses Opd1fb ---------- -Opd1fb: -;@ EaCalc : Get '($33,pc,d3.w*2)' into r0: - ldr r0,[r7,#0x60] ;@ Get Memory base - ldrh r3,[r4] ;@ Get extension word - sub r0,r4,r0 ;@ r0=PC - add r4,r4,#2 - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r3,r3,asl #24 ;@ r3=Get 8-bit signed Disp - add r2,r2,r3,asr #24 ;@ r2=Disp+Rn - add r0,r2,r0 ;@ r0=Disp+PC+Rn -;@ EaRead : Read '($33,pc,d3.w*2)' (address in r0) into r0: - mov lr,pc - ldr pc,[r7,#0x88] ;@ Call fetch32(r0) handler - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [d1fc] adda.l #$33333333, a0 uses Opd1fc ---------- -Opd1fc: -;@ EaCalc : Get '#$33333333' into r0: - ldrh r2,[r4],#2 ;@ Fetch immediate value - ldrh r3,[r4],#2 - orr r0,r3,r2,lsl #16 -;@ EaRead : Read '#$33333333' (address in r0) into r0: - -;@ EaCalc : Get register index into r11: - and r11,r8,#0x1e00 -;@ EaRead : Read register[r11] into r1: - ldr r1,[r7,r11,lsr #7] - - add r1,r1,r0 - -;@ EaWrite: r1 into register[r11]: - str r1,[r7,r11,lsr #7] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [df08] addx.b -(a0), -(a7) uses Opdf08 ---------- -Opdf08: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a0)' into r0: - and r2,r8,#0x000f - ldr r0,[r7,r2,lsl #2] - sub r0,r0,#1 ;@ Pre-decrement An - str r0,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [df0f] addx.b -(a7), -(a7) uses Opdf0f ---------- -Opdf0f: -;@ Get src/dest EA vals -;@ EaCalc : Get '-(a7)' into r0: - ldr r0,[r7,#0x3c] ;@ A7 - sub r0,r0,#2 ;@ Pre-decrement An - str r0,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r0) into r6: - mov lr,pc - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - mov r6,r0,asl #24 - -;@ EaCalc : Get '-(a7)' into r11: - ldr r11,[r7,#0x3c] ;@ A7 - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,#0x3c] ;@ A7 -;@ EaRead : Read '-(a7)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x68] ;@ Call read8(r0) handler - -;@ Do arithmetic: -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - -;@ Make sure the carry bit will tip the balance: - mvn r2,#0 - orr r6,r6,r2,lsr #8 - - adcs r1,r6,r0,asl #24 - orr r3,r10,#0xb0000000 ;@ for old Z - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - movs r2,r1,lsr #24 - orreq r10,r10,#0x40000000 ;@ add potentially missed Z - andeq r10,r10,r3 ;@ fix Z - -;@ Save result: -;@ EaWrite: Write r1 into '-(a7)' (address in r11): - mov r1,r1,lsr #24 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x74] ;@ Call write8(r0,r1) handler - - ldr r6,[r7,#0x54] - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e000] asr.b #8, d0 uses Ope000 ---------- -Ope000: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #24 - -;@ Shift register: - movs r0,r0,asr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e008] lsr.b #8, d0 uses Ope008 ---------- -Ope008: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #24 - -;@ Shift register: - movs r0,r0,lsr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e010] roxr.b #8, d0 uses Ope010 ---------- -Ope010: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,#8 - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e018] ror.b #8, d0 uses Ope018 ---------- -Ope018: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #8 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e020] asr.b d0, d0 uses Ope020 ---------- -Ope020: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #24 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e028] lsr.b d0, d0 uses Ope028 ---------- -Ope028: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #24 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e030] roxr.b d0, d0 uses Ope030 ---------- -Ope030: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e030: - subs r2,r2,#9 - bpl Reduce_e030 - adds r2,r2,#9 ;@ Now r2=0-8 - beq norotx_e030 - - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe030 -norotx_e030: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe030: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e038] ror.b d0, d0 uses Ope038 ---------- -Ope038: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e040] asr.w #8, d0 uses Ope040 ---------- -Ope040: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e048] lsr.w #8, d0 uses Ope048 ---------- -Ope048: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e050] roxr.w #8, d0 uses Ope050 ---------- -Ope050: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,#8 - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e058] ror.w #8, d0 uses Ope058 ---------- -Ope058: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #8 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e060] asr.w d0, d0 uses Ope060 ---------- -Ope060: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e068] lsr.w d0, d0 uses Ope068 ---------- -Ope068: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e070] roxr.w d0, d0 uses Ope070 ---------- -Ope070: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e070: - subs r2,r2,#17 - bpl Reduce_e070 - adds r2,r2,#17 ;@ Now r2=0-16 - beq norotx_e070 - - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe070 -norotx_e070: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe070: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e078] ror.w d0, d0 uses Ope078 ---------- -Ope078: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e080] asr.l #8, d0 uses Ope080 ---------- -Ope080: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Shift register: - movs r0,r0,asr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e088] lsr.l #8, d0 uses Ope088 ---------- -Ope088: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Shift register: - movs r0,r0,lsr #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e090] roxr.l #8, d0 uses Ope090 ---------- -Ope090: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,#8 - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e098] ror.l #8, d0 uses Ope098 ---------- -Ope098: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #8 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0a0] asr.l d0, d0 uses Ope0a0 ---------- -Ope0a0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0a8] lsr.l d0, d0 uses Ope0a8 ---------- -Ope0a8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0b0] roxr.l d0, d0 uses Ope0b0 ---------- -Ope0b0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - subs r2,r2,#33 - addmis r2,r2,#33 ;@ Now r2=0-32 - beq norotx_e0b0 - - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe0b0 -norotx_e0b0: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe0b0: - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0b8] ror.l d0, d0 uses Ope0b8 ---------- -Ope0b8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0d0] asr.w (a0) uses Ope0d0 ---------- -Ope0d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0d8] asr.w (a0)+ uses Ope0d8 ---------- -Ope0d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0e0] asr.w -(a0) uses Ope0e0 ---------- -Ope0e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0e8] asr.w ($3333,a0) uses Ope0e8 ---------- -Ope0e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0f0] asr.w ($33,a0,d3.w*2) uses Ope0f0 ---------- -Ope0f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0f8] asr.w $3333.w uses Ope0f8 ---------- -Ope0f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e0f9] asr.w $33333333.l uses Ope0f9 ---------- -Ope0f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e100] asl.b #8, d0 uses Ope100 ---------- -Ope100: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #8 - cmpne r3,r1,asr #8 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e108] lsl.b #8, d0 uses Ope108 ---------- -Ope108: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Shift register: - movs r0,r0,lsl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e110] roxl.b #8, d0 uses Ope110 ---------- -Ope110: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,#1 ;@ Reversed - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e118] rol.b #8, d0 uses Ope118 ---------- -Ope118: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #24 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e120] asl.b d0, d0 uses Ope120 ---------- -Ope120: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e128] lsl.b d0, d0 uses Ope128 ---------- -Ope128: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e130] roxl.b d0, d0 uses Ope130 ---------- -Ope130: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e130: - subs r2,r2,#9 - bpl Reduce_e130 - adds r2,r2,#9 ;@ Now r2=0-8 - beq norotx_e130 - - rsb r2,r2,#9 ;@ Reverse direction - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe130 -norotx_e130: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe130: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e138] rol.b d0, d0 uses Ope138 ---------- -Ope138: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - cmp r2,#32 ;@ rotating by 0? - tstne r0,#1 ;@ no, check bit 0 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e140] asl.w #8, d0 uses Ope140 ---------- -Ope140: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #8 - cmpne r3,r1,asr #8 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e148] lsl.w #8, d0 uses Ope148 ---------- -Ope148: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e150] roxl.w #8, d0 uses Ope150 ---------- -Ope150: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,#9 ;@ Reversed - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e158] rol.w #8, d0 uses Ope158 ---------- -Ope158: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #24 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#22 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e160] asl.w d0, d0 uses Ope160 ---------- -Ope160: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e168] lsl.w d0, d0 uses Ope168 ---------- -Ope168: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e170] roxl.w d0, d0 uses Ope170 ---------- -Ope170: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Reduce r2 until <0: -Reduce_e170: - subs r2,r2,#17 - bpl Reduce_e170 - adds r2,r2,#17 ;@ Now r2=0-16 - beq norotx_e170 - - rsb r2,r2,#17 ;@ Reverse direction - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe170 -norotx_e170: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe170: - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e178] rol.w d0, d0 uses Ope178 ---------- -Ope178: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - cmp r2,#32 ;@ rotating by 0? - tstne r0,#1 ;@ no, check bit 0 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e180] asl.l #8, d0 uses Ope180 ---------- -Ope180: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #8 - cmpne r3,r1,asr #8 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e188] lsl.l #8, d0 uses Ope188 ---------- -Ope188: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Shift register: - movs r0,r0,lsl #8 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e190] roxl.l #8, d0 uses Ope190 ---------- -Ope190: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,#25 ;@ Reversed - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e198] rol.l #8, d0 uses Ope198 ---------- -Ope198: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Rotate register: - movs r0,r0,ror #24 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#24 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1a0] asl.l d0, d0 uses Ope1a0 ---------- -Ope1a0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1a8] lsl.l d0, d0 uses Ope1a8 ---------- -Ope1a8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - cmp r2,#0 ;@ shifting by 0? - biceq r10,r10,#0x20000000 ;@ if so, clear carry - strne r10,[r7,#0x4c] ;@ else Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1b0] roxl.l d0, d0 uses Ope1b0 ---------- -Ope1b0: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - subs r2,r2,#33 - addmis r2,r2,#33 ;@ Now r2=0-32 - beq norotx_e1b0 - - rsb r2,r2,#33 ;@ Reverse direction - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ if not 0, Save X bit - b nozeroxe1b0 -norotx_e1b0: - ldr r2,[r7,#0x4c] - adds r0,r0,#0 ;@ Define flags - and r10,r0,#0x80000000 ;@ r10=N_flag - orreq r10,r10,#0x40000000 ;@ get NZ, clear CV - and r2,r2,#0x20000000 - orr r10,r10,r2 ;@ C = old_X -nozeroxe1b0: - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1b8] rol.l d0, d0 uses Ope1b8 ---------- -Ope1b8: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Use Dn for count: - and r2,r8,#0x0e00 - ldr r2,[r7,r2,lsr #7] - and r2,r2,#63 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - cmp r2,#32 ;@ rotating by 0? - tstne r0,#1 ;@ no, check bit 0 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1d0] asl.w (a0) uses Ope1d0 ---------- -Ope1d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1d8] asl.w (a0)+ uses Ope1d8 ---------- -Ope1d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1e0] asl.w -(a0) uses Ope1e0 ---------- -Ope1e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1e8] asl.w ($3333,a0) uses Ope1e8 ---------- -Ope1e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1f0] asl.w ($33,a0,d3.w*2) uses Ope1f0 ---------- -Ope1f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1f8] asl.w $3333.w uses Ope1f8 ---------- -Ope1f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e1f9] asl.w $33333333.l uses Ope1f9 ---------- -Ope1f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr #1 - cmpne r3,r1,asr #1 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e210] roxr.b #1, d0 uses Ope210 ---------- -Ope210: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - orr r0,r0,r0,lsr #24 - bic r0,r0,#0x1000000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e250] roxr.w #1, d0 uses Ope250 ---------- -Ope250: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e290] roxr.l #1, d0 uses Ope290 ---------- -Ope290: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2d0] lsr.w (a0) uses Ope2d0 ---------- -Ope2d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2d8] lsr.w (a0)+ uses Ope2d8 ---------- -Ope2d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2e0] lsr.w -(a0) uses Ope2e0 ---------- -Ope2e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2e8] lsr.w ($3333,a0) uses Ope2e8 ---------- -Ope2e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2f0] lsr.w ($33,a0,d3.w*2) uses Ope2f0 ---------- -Ope2f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2f8] lsr.w $3333.w uses Ope2f8 ---------- -Ope2f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e2f9] lsr.w $33333333.l uses Ope2f9 ---------- -Ope2f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e310] roxl.b #1, d0 uses Ope310 ---------- -Ope310: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x1000000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e350] roxl.w #1, d0 uses Ope350 ---------- -Ope350: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e390] roxl.l #1, d0 uses Ope390 ---------- -Ope390: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x1 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#10 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3d0] lsl.w (a0) uses Ope3d0 ---------- -Ope3d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3d8] lsl.w (a0)+ uses Ope3d8 ---------- -Ope3d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3e0] lsl.w -(a0) uses Ope3e0 ---------- -Ope3e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3e8] lsl.w ($3333,a0) uses Ope3e8 ---------- -Ope3e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3f0] lsl.w ($33,a0,d3.w*2) uses Ope3f0 ---------- -Ope3f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3f8] lsl.w $3333.w uses Ope3f8 ---------- -Ope3f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e3f9] lsl.w $33333333.l uses Ope3f9 ---------- -Ope3f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Shift register: - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4d0] roxr.w (a0) uses Ope4d0 ---------- -Ope4d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4d8] roxr.w (a0)+ uses Ope4d8 ---------- -Ope4d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4e0] roxr.w -(a0) uses Ope4e0 ---------- -Ope4e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4e8] roxr.w ($3333,a0) uses Ope4e8 ---------- -Ope4e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4f0] roxr.w ($33,a0,d3.w*2) uses Ope4f0 ---------- -Ope4f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4f8] roxr.w $3333.w uses Ope4f8 ---------- -Ope4f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e4f9] roxr.w $33333333.l uses Ope4f9 ---------- -Ope4f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - orr r0,r0,r0,lsr #16 - bic r0,r0,#0x10000 -;@ Get X bit: - ldr r2,[r7,#0x4c] - tst r2,r2,lsl #3 ;@ Get into Carry - - movs r0,r0,rrx - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5d0] roxl.w (a0) uses Ope5d0 ---------- -Ope5d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5d8] roxl.w (a0)+ uses Ope5d8 ---------- -Ope5d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5e0] roxl.w -(a0) uses Ope5e0 ---------- -Ope5e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5e8] roxl.w ($3333,a0) uses Ope5e8 ---------- -Ope5e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5f0] roxl.w ($33,a0,d3.w*2) uses Ope5f0 ---------- -Ope5f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5f8] roxl.w $3333.w uses Ope5f8 ---------- -Ope5f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e5f9] roxl.w $33333333.l uses Ope5f9 ---------- -Ope5f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - - ldr r3,[r7,#0x4c] - movs r0,r0,lsl #1 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - tst r3,#0x20000000 - orrne r0,r0,#0x10000 - bicne r10,r10,#0x40000000 ;@ clear Z in case it got there - bic r10,r10,#0x10000000 ;@ make suve V is clear -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6d0] ror.w (a0) uses Ope6d0 ---------- -Ope6d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6d8] ror.w (a0)+ uses Ope6d8 ---------- -Ope6d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6e0] ror.w -(a0) uses Ope6e0 ---------- -Ope6e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6e8] ror.w ($3333,a0) uses Ope6e8 ---------- -Ope6e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6f0] ror.w ($33,a0,d3.w*2) uses Ope6f0 ---------- -Ope6f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6f8] ror.w $3333.w uses Ope6f8 ---------- -Ope6f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e6f9] ror.w $33333333.l uses Ope6f9 ---------- -Ope6f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror #1 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7d0] rol.w (a0) uses Ope7d0 ---------- -Ope7d0: -;@ EaCalc : Get '(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7d8] rol.w (a0)+ uses Ope7d8 ---------- -Ope7d8: -;@ EaCalc : Get '(a0)+' into r11: - and r2,r8,#0x000f - ldr r11,[r7,r2,lsl #2] - add r3,r11,#2 ;@ Post-increment An - str r3,[r7,r2,lsl #2] -;@ EaRead : Read '(a0)+' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '(a0)+' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#12 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7e0] rol.w -(a0) uses Ope7e0 ---------- -Ope7e0: -;@ EaCalc : Get '-(a0)' into r11: - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r11,[r7,r2,lsl #2] - sub r11,r11,#2 ;@ Pre-decrement An - str r11,[r7,r2,lsl #2] -;@ EaRead : Read '-(a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '-(a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#14 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7e8] rol.w ($3333,a0) uses Ope7e8 ---------- -Ope7e8: -;@ EaCalc : Get '($3333,a0)' into r11: - ldrsh r0,[r4],#2 ;@ Fetch offset - and r2,r8,#0x000f - ldr r2,[r7,r2,lsl #2] - add r11,r0,r2 ;@ Add on offset -;@ EaRead : Read '($3333,a0)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '($3333,a0)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7f0] rol.w ($33,a0,d3.w*2) uses Ope7f0 ---------- -Ope7f0: -;@ EaCalc : Get '($33,a0,d3.w*2)' into r11: -;@ Get extension word into r3: - ldrh r3,[r4],#2 ;@ ($Disp,PC,Rn) - mov r2,r3,lsr #10 - tst r3,#0x0800 ;@ Is Rn Word or Long - and r2,r2,#0x3c ;@ r2=Index of Rn - ldreqsh r2,[r7,r2] ;@ r2=Rn.w - ldrne r2,[r7,r2] ;@ r2=Rn.l - mov r0,r3,asl #24 ;@ r0=Get 8-bit signed Disp - add r3,r2,r0,asr #24 ;@ r3=Disp+Rn - and r2,r8,#0x000f - orr r2,r2,#0x8 ;@ A0-7 - ldr r2,[r7,r2,lsl #2] - add r11,r2,r3 ;@ r11=Disp+An+Rn -;@ EaRead : Read '($33,a0,d3.w*2)' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '($33,a0,d3.w*2)' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#18 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7f8] rol.w $3333.w uses Ope7f8 ---------- -Ope7f8: -;@ EaCalc : Get '$3333.w' into r11: - ldrsh r11,[r4],#2 ;@ Fetch Absolute Short address -;@ EaRead : Read '$3333.w' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '$3333.w' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#16 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [e7f9] rol.w $33333333.l uses Ope7f9 ---------- -Ope7f9: -;@ EaCalc : Get '$33333333.l' into r11: - ldrh r2,[r4],#2 ;@ Fetch Absolute Long address - ldrh r0,[r4],#2 - orr r11,r0,r2,lsl #16 -;@ EaRead : Read '$33333333.l' (address in r11) into r0: - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x6c] ;@ Call read16(r0) handler - mov r0,r0,asl #16 - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - movs r0,r0,ror #31 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: Write r0 into '$33333333.l' (address in r11): - mov r1,r0,lsr #16 - add lr,pc,#4 - mov r0,r11 - ldr pc,[r7,#0x78] ;@ Call write16(r0,r1) handler - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#20 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee00] asr.b #7, d0 uses Opee00 ---------- -Opee00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #24 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee08] lsr.b #7, d0 uses Opee08 ---------- -Opee08: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #24 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #24 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee10] roxr.b #7, d0 uses Opee10 ---------- -Opee10: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee18] ror.b #7, d0 uses Opee18 ---------- -Opee18: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee40] asr.w #7, d0 uses Opee40 ---------- -Opee40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,asr #16 - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee48] lsr.w #7, d0 uses Opee48 ---------- -Opee48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ For shift right, use loworder bits for the operation: - mov r0,r0,lsr #16 - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ restore after right shift: - movs r0,r0,lsl #16 - orrmi r10,r10,#0x80000000 ;@ Potentially missed N flag - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee50] roxr.w #7, d0 uses Opee50 ---------- -Opee50: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee58] ror.w #7, d0 uses Opee58 ---------- -Opee58: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee80] asr.l #7, d0 uses Opee80 ---------- -Opee80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,asr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee88] lsr.l #7, d0 uses Opee88 ---------- -Opee88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsr r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee90] roxr.l #7, d0 uses Opee90 ---------- -Opee90: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ee98] ror.l #7, d0 uses Opee98 ---------- -Opee98: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - adds r0,r0,#0 ;@ first clear V and C - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef00] asl.b #7, d0 uses Opef00 ---------- -Opef00: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef08] lsl.b #7, d0 uses Opef08 ---------- -Opef08: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef10] roxl.b #7, d0 uses Opef10 ---------- -Opef10: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - rsb r2,r2,#9 ;@ Reverse direction - mov r0,r0,lsr #24 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#8 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#9 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #24 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef18] rol.b #7, d0 uses Opef18 ---------- -Opef18: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - mov r0,r0,asl #24 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #8 - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #24 - strb r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef40] asl.w #7, d0 uses Opef40 ---------- -Opef40: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef48] lsl.w #7, d0 uses Opef48 ---------- -Opef48: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef50] roxl.w #7, d0 uses Opef50 ---------- -Opef50: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - rsb r2,r2,#17 ;@ Reverse direction - mov r0,r0,lsr #16 ;@ Shift down - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#16 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#17 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - movs r0,r0,lsl #16 ;@ Shift up and get correct NC flags - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef58] rol.w #7, d0 uses Opef58 ---------- -Opef58: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 - mov r11,r11,lsl #2 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11] - mov r0,r0,asl #16 - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Mirror value in whole 32 bits: - orr r0,r0,r0,lsr #16 - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - mov r0,r0,lsr #16 - strh r0,[r7,r11] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#6 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef80] asl.l #7, d0 uses Opef80 ---------- -Opef80: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - adds r3,r0,#0 ;@ save old value for V flag calculation, also clear V -;@ Shift register: - movs r0,r0,asl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ calculate V flag (set if sign bit changes at anytime): - mov r1,#0x80000000 - ands r3,r3,r1,asr r2 - cmpne r3,r1,asr r2 - eoreq r1,r0,r3 - tsteq r1,#0x80000000 - orrne r10,r10,#0x10000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef88] lsl.l #7, d0 uses Opef88 ---------- -Opef88: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Shift register: - movs r0,r0,lsl r2 - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef90] roxl.l #7, d0 uses Opef90 ---------- -Opef90: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - - rsb r2,r2,#33 ;@ Reverse direction - -;@ First get X bit (middle): - ldr r3,[r7,#0x4c] - rsb r1,r2,#32 - and r3,r3,#0x20000000 - mov r3,r3,lsr #29 - mov r3,r3,lsl r1 -;@ Rotate bits: - orr r3,r3,r0,lsr r2 ;@ Orr right part - rsbs r2,r2,#33 ;@ should also clear ARM V - orrs r0,r3,r0,lsl r2 ;@ Orr left part, set flags - - mrs r10,cpsr ;@ r10=flags - str r10,[r7,#0x4c] ;@ Save X bit - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- [ef98] rol.l #7, d0 uses Opef98 ---------- -Opef98: -;@ EaCalc : Get register index into r11: - and r11,r8,#0x0007 -;@ EaRead : Read register[r11] into r0: - ldr r0,[r7,r11,lsl #2] - - mov r2,r8,lsr #9 ;@ Get 'n' - and r2,r2,#7 - - sub r5,r5,r2,asl #1 ;@ Take 2*n cycles - -;@ Rotate register: - rsb r2,r2,#32 - movs r0,r0,ror r2 - mrs r10,cpsr ;@ r10=flags - bic r10,r10,#0x30000000 ;@ clear CV -;@ Get carry bit from bit 0: - tst r0,#1 - orrne r10,r10,#0x20000000 - -;@ EaWrite: r0 into register[r11]: - str r0,[r7,r11,lsl #2] - - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#8 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - -;@ ---------- -;@ tried execute privileged instruction in user mode -WrongPrivilegeMode: - ldr r1,[r7,#0x58] - sub r4,r4,#2 ;@ last opcode wasn't executed - go back - orr r1,r1,#4 ;@ set activity bit: 'not processing instruction' - str r1,[r7,#0x58] - mov r0,#8 ;@ privilege violation - bl Exception - ldrh r8,[r4],#2 ;@ Fetch next opcode - subs r5,r5,#34 ;@ Subtract cycles - ldrgt pc,[r6,r8,asl #2] ;@ Jump to opcode handler - b CycloneEnd - - -;@ -------------------------- Jump Table -------------------------- - .data - .align 4 - -CycloneJumpTab: - .long Op0000,Op0000,Op0000,Op0000,Op0000,Op0000,Op0000,Op0000 ;@ 0000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0008 - .long Op0010,Op0010,Op0010,Op0010,Op0010,Op0010,Op0010,Op0010 ;@ 0010 - .long Op0018,Op0018,Op0018,Op0018,Op0018,Op0018,Op0018,Op001f ;@ 0018 - .long Op0020,Op0020,Op0020,Op0020,Op0020,Op0020,Op0020,Op0027 ;@ 0020 - .long Op0028,Op0028,Op0028,Op0028,Op0028,Op0028,Op0028,Op0028 ;@ 0028 - .long Op0030,Op0030,Op0030,Op0030,Op0030,Op0030,Op0030,Op0030 ;@ 0030 - .long Op0038,Op0039,Op____,Op____,Op003c,Op____,Op____,Op____ ;@ 0038 - .long Op0040,Op0040,Op0040,Op0040,Op0040,Op0040,Op0040,Op0040 ;@ 0040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0048 - .long Op0050,Op0050,Op0050,Op0050,Op0050,Op0050,Op0050,Op0050 ;@ 0050 - .long Op0058,Op0058,Op0058,Op0058,Op0058,Op0058,Op0058,Op0058 ;@ 0058 - .long Op0060,Op0060,Op0060,Op0060,Op0060,Op0060,Op0060,Op0060 ;@ 0060 - .long Op0068,Op0068,Op0068,Op0068,Op0068,Op0068,Op0068,Op0068 ;@ 0068 - .long Op0070,Op0070,Op0070,Op0070,Op0070,Op0070,Op0070,Op0070 ;@ 0070 - .long Op0078,Op0079,Op____,Op____,Op007c,Op____,Op____,Op____ ;@ 0078 - .long Op0080,Op0080,Op0080,Op0080,Op0080,Op0080,Op0080,Op0080 ;@ 0080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0088 - .long Op0090,Op0090,Op0090,Op0090,Op0090,Op0090,Op0090,Op0090 ;@ 0090 - .long Op0098,Op0098,Op0098,Op0098,Op0098,Op0098,Op0098,Op0098 ;@ 0098 - .long Op00a0,Op00a0,Op00a0,Op00a0,Op00a0,Op00a0,Op00a0,Op00a0 ;@ 00a0 - .long Op00a8,Op00a8,Op00a8,Op00a8,Op00a8,Op00a8,Op00a8,Op00a8 ;@ 00a8 - .long Op00b0,Op00b0,Op00b0,Op00b0,Op00b0,Op00b0,Op00b0,Op00b0 ;@ 00b0 - .long Op00b8,Op00b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 00f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0100 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0108 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0110 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0118 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0120 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0128 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0130 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0138 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0140 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0148 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0150 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0158 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0160 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0168 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0170 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0178 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0180 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0188 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0190 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0198 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 01a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 01a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 01b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 01b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 01c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 01c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 01d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 01d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 01e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 01e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 01f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 01f8 - .long Op0200,Op0200,Op0200,Op0200,Op0200,Op0200,Op0200,Op0200 ;@ 0200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0208 - .long Op0210,Op0210,Op0210,Op0210,Op0210,Op0210,Op0210,Op0210 ;@ 0210 - .long Op0218,Op0218,Op0218,Op0218,Op0218,Op0218,Op0218,Op021f ;@ 0218 - .long Op0220,Op0220,Op0220,Op0220,Op0220,Op0220,Op0220,Op0227 ;@ 0220 - .long Op0228,Op0228,Op0228,Op0228,Op0228,Op0228,Op0228,Op0228 ;@ 0228 - .long Op0230,Op0230,Op0230,Op0230,Op0230,Op0230,Op0230,Op0230 ;@ 0230 - .long Op0238,Op0239,Op____,Op____,Op023c,Op____,Op____,Op____ ;@ 0238 - .long Op0240,Op0240,Op0240,Op0240,Op0240,Op0240,Op0240,Op0240 ;@ 0240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0248 - .long Op0250,Op0250,Op0250,Op0250,Op0250,Op0250,Op0250,Op0250 ;@ 0250 - .long Op0258,Op0258,Op0258,Op0258,Op0258,Op0258,Op0258,Op0258 ;@ 0258 - .long Op0260,Op0260,Op0260,Op0260,Op0260,Op0260,Op0260,Op0260 ;@ 0260 - .long Op0268,Op0268,Op0268,Op0268,Op0268,Op0268,Op0268,Op0268 ;@ 0268 - .long Op0270,Op0270,Op0270,Op0270,Op0270,Op0270,Op0270,Op0270 ;@ 0270 - .long Op0278,Op0279,Op____,Op____,Op027c,Op____,Op____,Op____ ;@ 0278 - .long Op0280,Op0280,Op0280,Op0280,Op0280,Op0280,Op0280,Op0280 ;@ 0280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0288 - .long Op0290,Op0290,Op0290,Op0290,Op0290,Op0290,Op0290,Op0290 ;@ 0290 - .long Op0298,Op0298,Op0298,Op0298,Op0298,Op0298,Op0298,Op0298 ;@ 0298 - .long Op02a0,Op02a0,Op02a0,Op02a0,Op02a0,Op02a0,Op02a0,Op02a0 ;@ 02a0 - .long Op02a8,Op02a8,Op02a8,Op02a8,Op02a8,Op02a8,Op02a8,Op02a8 ;@ 02a8 - .long Op02b0,Op02b0,Op02b0,Op02b0,Op02b0,Op02b0,Op02b0,Op02b0 ;@ 02b0 - .long Op02b8,Op02b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 02f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0300 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0308 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0310 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0318 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0320 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0328 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0330 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0338 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0340 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0348 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0350 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0358 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0360 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0368 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0370 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0378 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0380 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0388 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0390 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0398 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 03a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 03a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 03b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 03b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 03c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 03c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 03d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 03d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 03e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 03e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 03f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 03f8 - .long Op0400,Op0400,Op0400,Op0400,Op0400,Op0400,Op0400,Op0400 ;@ 0400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0408 - .long Op0410,Op0410,Op0410,Op0410,Op0410,Op0410,Op0410,Op0410 ;@ 0410 - .long Op0418,Op0418,Op0418,Op0418,Op0418,Op0418,Op0418,Op041f ;@ 0418 - .long Op0420,Op0420,Op0420,Op0420,Op0420,Op0420,Op0420,Op0427 ;@ 0420 - .long Op0428,Op0428,Op0428,Op0428,Op0428,Op0428,Op0428,Op0428 ;@ 0428 - .long Op0430,Op0430,Op0430,Op0430,Op0430,Op0430,Op0430,Op0430 ;@ 0430 - .long Op0438,Op0439,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0438 - .long Op0440,Op0440,Op0440,Op0440,Op0440,Op0440,Op0440,Op0440 ;@ 0440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0448 - .long Op0450,Op0450,Op0450,Op0450,Op0450,Op0450,Op0450,Op0450 ;@ 0450 - .long Op0458,Op0458,Op0458,Op0458,Op0458,Op0458,Op0458,Op0458 ;@ 0458 - .long Op0460,Op0460,Op0460,Op0460,Op0460,Op0460,Op0460,Op0460 ;@ 0460 - .long Op0468,Op0468,Op0468,Op0468,Op0468,Op0468,Op0468,Op0468 ;@ 0468 - .long Op0470,Op0470,Op0470,Op0470,Op0470,Op0470,Op0470,Op0470 ;@ 0470 - .long Op0478,Op0479,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0478 - .long Op0480,Op0480,Op0480,Op0480,Op0480,Op0480,Op0480,Op0480 ;@ 0480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0488 - .long Op0490,Op0490,Op0490,Op0490,Op0490,Op0490,Op0490,Op0490 ;@ 0490 - .long Op0498,Op0498,Op0498,Op0498,Op0498,Op0498,Op0498,Op0498 ;@ 0498 - .long Op04a0,Op04a0,Op04a0,Op04a0,Op04a0,Op04a0,Op04a0,Op04a0 ;@ 04a0 - .long Op04a8,Op04a8,Op04a8,Op04a8,Op04a8,Op04a8,Op04a8,Op04a8 ;@ 04a8 - .long Op04b0,Op04b0,Op04b0,Op04b0,Op04b0,Op04b0,Op04b0,Op04b0 ;@ 04b0 - .long Op04b8,Op04b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 04f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0500 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0508 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0510 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0518 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0520 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0528 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0530 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0538 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0540 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0548 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0550 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0558 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0560 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0568 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0570 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0578 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0580 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0588 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0590 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0598 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 05a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 05a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 05b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 05b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 05c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 05c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 05d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 05d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 05e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 05e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 05f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 05f8 - .long Op0600,Op0600,Op0600,Op0600,Op0600,Op0600,Op0600,Op0600 ;@ 0600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0608 - .long Op0610,Op0610,Op0610,Op0610,Op0610,Op0610,Op0610,Op0610 ;@ 0610 - .long Op0618,Op0618,Op0618,Op0618,Op0618,Op0618,Op0618,Op061f ;@ 0618 - .long Op0620,Op0620,Op0620,Op0620,Op0620,Op0620,Op0620,Op0627 ;@ 0620 - .long Op0628,Op0628,Op0628,Op0628,Op0628,Op0628,Op0628,Op0628 ;@ 0628 - .long Op0630,Op0630,Op0630,Op0630,Op0630,Op0630,Op0630,Op0630 ;@ 0630 - .long Op0638,Op0639,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0638 - .long Op0640,Op0640,Op0640,Op0640,Op0640,Op0640,Op0640,Op0640 ;@ 0640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0648 - .long Op0650,Op0650,Op0650,Op0650,Op0650,Op0650,Op0650,Op0650 ;@ 0650 - .long Op0658,Op0658,Op0658,Op0658,Op0658,Op0658,Op0658,Op0658 ;@ 0658 - .long Op0660,Op0660,Op0660,Op0660,Op0660,Op0660,Op0660,Op0660 ;@ 0660 - .long Op0668,Op0668,Op0668,Op0668,Op0668,Op0668,Op0668,Op0668 ;@ 0668 - .long Op0670,Op0670,Op0670,Op0670,Op0670,Op0670,Op0670,Op0670 ;@ 0670 - .long Op0678,Op0679,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0678 - .long Op0680,Op0680,Op0680,Op0680,Op0680,Op0680,Op0680,Op0680 ;@ 0680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0688 - .long Op0690,Op0690,Op0690,Op0690,Op0690,Op0690,Op0690,Op0690 ;@ 0690 - .long Op0698,Op0698,Op0698,Op0698,Op0698,Op0698,Op0698,Op0698 ;@ 0698 - .long Op06a0,Op06a0,Op06a0,Op06a0,Op06a0,Op06a0,Op06a0,Op06a0 ;@ 06a0 - .long Op06a8,Op06a8,Op06a8,Op06a8,Op06a8,Op06a8,Op06a8,Op06a8 ;@ 06a8 - .long Op06b0,Op06b0,Op06b0,Op06b0,Op06b0,Op06b0,Op06b0,Op06b0 ;@ 06b0 - .long Op06b8,Op06b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 06f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0700 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0708 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0710 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0718 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0720 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0728 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0730 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0738 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0740 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0748 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0750 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0758 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0760 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0768 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0770 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0778 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0780 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0788 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0790 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0798 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 07a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 07a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 07b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 07b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 07c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 07c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 07d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 07d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 07e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 07e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 07f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 07f8 - .long Op0800,Op0800,Op0800,Op0800,Op0800,Op0800,Op0800,Op0800 ;@ 0800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0808 - .long Op0810,Op0810,Op0810,Op0810,Op0810,Op0810,Op0810,Op0810 ;@ 0810 - .long Op0818,Op0818,Op0818,Op0818,Op0818,Op0818,Op0818,Op081f ;@ 0818 - .long Op0820,Op0820,Op0820,Op0820,Op0820,Op0820,Op0820,Op0827 ;@ 0820 - .long Op0828,Op0828,Op0828,Op0828,Op0828,Op0828,Op0828,Op0828 ;@ 0828 - .long Op0830,Op0830,Op0830,Op0830,Op0830,Op0830,Op0830,Op0830 ;@ 0830 - .long Op0838,Op0839,Op083a,Op083b,Op____,Op____,Op____,Op____ ;@ 0838 - .long Op0840,Op0840,Op0840,Op0840,Op0840,Op0840,Op0840,Op0840 ;@ 0840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0848 - .long Op0850,Op0850,Op0850,Op0850,Op0850,Op0850,Op0850,Op0850 ;@ 0850 - .long Op0858,Op0858,Op0858,Op0858,Op0858,Op0858,Op0858,Op085f ;@ 0858 - .long Op0860,Op0860,Op0860,Op0860,Op0860,Op0860,Op0860,Op0867 ;@ 0860 - .long Op0868,Op0868,Op0868,Op0868,Op0868,Op0868,Op0868,Op0868 ;@ 0868 - .long Op0870,Op0870,Op0870,Op0870,Op0870,Op0870,Op0870,Op0870 ;@ 0870 - .long Op0878,Op0879,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0878 - .long Op0880,Op0880,Op0880,Op0880,Op0880,Op0880,Op0880,Op0880 ;@ 0880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0888 - .long Op0890,Op0890,Op0890,Op0890,Op0890,Op0890,Op0890,Op0890 ;@ 0890 - .long Op0898,Op0898,Op0898,Op0898,Op0898,Op0898,Op0898,Op089f ;@ 0898 - .long Op08a0,Op08a0,Op08a0,Op08a0,Op08a0,Op08a0,Op08a0,Op08a7 ;@ 08a0 - .long Op08a8,Op08a8,Op08a8,Op08a8,Op08a8,Op08a8,Op08a8,Op08a8 ;@ 08a8 - .long Op08b0,Op08b0,Op08b0,Op08b0,Op08b0,Op08b0,Op08b0,Op08b0 ;@ 08b0 - .long Op08b8,Op08b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 08b8 - .long Op08c0,Op08c0,Op08c0,Op08c0,Op08c0,Op08c0,Op08c0,Op08c0 ;@ 08c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 08c8 - .long Op08d0,Op08d0,Op08d0,Op08d0,Op08d0,Op08d0,Op08d0,Op08d0 ;@ 08d0 - .long Op08d8,Op08d8,Op08d8,Op08d8,Op08d8,Op08d8,Op08d8,Op08df ;@ 08d8 - .long Op08e0,Op08e0,Op08e0,Op08e0,Op08e0,Op08e0,Op08e0,Op08e7 ;@ 08e0 - .long Op08e8,Op08e8,Op08e8,Op08e8,Op08e8,Op08e8,Op08e8,Op08e8 ;@ 08e8 - .long Op08f0,Op08f0,Op08f0,Op08f0,Op08f0,Op08f0,Op08f0,Op08f0 ;@ 08f0 - .long Op08f8,Op08f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 08f8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0900 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0908 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0910 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0918 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0920 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0928 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0930 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0938 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0940 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0948 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0950 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0958 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0960 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0968 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0970 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0978 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0980 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0988 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0990 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0998 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 09a0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 09a8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 09b0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 09b8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 09c0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 09c8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 09d0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 09d8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 09e0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 09e8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 09f0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 09f8 - .long Op0a00,Op0a00,Op0a00,Op0a00,Op0a00,Op0a00,Op0a00,Op0a00 ;@ 0a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0a08 - .long Op0a10,Op0a10,Op0a10,Op0a10,Op0a10,Op0a10,Op0a10,Op0a10 ;@ 0a10 - .long Op0a18,Op0a18,Op0a18,Op0a18,Op0a18,Op0a18,Op0a18,Op0a1f ;@ 0a18 - .long Op0a20,Op0a20,Op0a20,Op0a20,Op0a20,Op0a20,Op0a20,Op0a27 ;@ 0a20 - .long Op0a28,Op0a28,Op0a28,Op0a28,Op0a28,Op0a28,Op0a28,Op0a28 ;@ 0a28 - .long Op0a30,Op0a30,Op0a30,Op0a30,Op0a30,Op0a30,Op0a30,Op0a30 ;@ 0a30 - .long Op0a38,Op0a39,Op____,Op____,Op0a3c,Op____,Op____,Op____ ;@ 0a38 - .long Op0a40,Op0a40,Op0a40,Op0a40,Op0a40,Op0a40,Op0a40,Op0a40 ;@ 0a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0a48 - .long Op0a50,Op0a50,Op0a50,Op0a50,Op0a50,Op0a50,Op0a50,Op0a50 ;@ 0a50 - .long Op0a58,Op0a58,Op0a58,Op0a58,Op0a58,Op0a58,Op0a58,Op0a58 ;@ 0a58 - .long Op0a60,Op0a60,Op0a60,Op0a60,Op0a60,Op0a60,Op0a60,Op0a60 ;@ 0a60 - .long Op0a68,Op0a68,Op0a68,Op0a68,Op0a68,Op0a68,Op0a68,Op0a68 ;@ 0a68 - .long Op0a70,Op0a70,Op0a70,Op0a70,Op0a70,Op0a70,Op0a70,Op0a70 ;@ 0a70 - .long Op0a78,Op0a79,Op____,Op____,Op0a7c,Op____,Op____,Op____ ;@ 0a78 - .long Op0a80,Op0a80,Op0a80,Op0a80,Op0a80,Op0a80,Op0a80,Op0a80 ;@ 0a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0a88 - .long Op0a90,Op0a90,Op0a90,Op0a90,Op0a90,Op0a90,Op0a90,Op0a90 ;@ 0a90 - .long Op0a98,Op0a98,Op0a98,Op0a98,Op0a98,Op0a98,Op0a98,Op0a98 ;@ 0a98 - .long Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0,Op0aa0 ;@ 0aa0 - .long Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8,Op0aa8 ;@ 0aa8 - .long Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0,Op0ab0 ;@ 0ab0 - .long Op0ab8,Op0ab9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ab8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ac8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ad0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ad8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ae0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ae8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0af0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0af8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0b00 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0b08 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0b10 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0b18 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0b20 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0b28 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0b30 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0b38 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0b40 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0b48 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0b50 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0b58 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0b60 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0b68 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0b70 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0b78 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0b80 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0b88 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0b90 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0b98 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 0ba0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 0ba8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 0bb0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0bb8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 0bc0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 0bc8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 0bd0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 0bd8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 0be0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 0be8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 0bf0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0bf8 - .long Op0c00,Op0c00,Op0c00,Op0c00,Op0c00,Op0c00,Op0c00,Op0c00 ;@ 0c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c08 - .long Op0c10,Op0c10,Op0c10,Op0c10,Op0c10,Op0c10,Op0c10,Op0c10 ;@ 0c10 - .long Op0c18,Op0c18,Op0c18,Op0c18,Op0c18,Op0c18,Op0c18,Op0c1f ;@ 0c18 - .long Op0c20,Op0c20,Op0c20,Op0c20,Op0c20,Op0c20,Op0c20,Op0c27 ;@ 0c20 - .long Op0c28,Op0c28,Op0c28,Op0c28,Op0c28,Op0c28,Op0c28,Op0c28 ;@ 0c28 - .long Op0c30,Op0c30,Op0c30,Op0c30,Op0c30,Op0c30,Op0c30,Op0c30 ;@ 0c30 - .long Op0c38,Op0c39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c38 - .long Op0c40,Op0c40,Op0c40,Op0c40,Op0c40,Op0c40,Op0c40,Op0c40 ;@ 0c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c48 - .long Op0c50,Op0c50,Op0c50,Op0c50,Op0c50,Op0c50,Op0c50,Op0c50 ;@ 0c50 - .long Op0c58,Op0c58,Op0c58,Op0c58,Op0c58,Op0c58,Op0c58,Op0c58 ;@ 0c58 - .long Op0c60,Op0c60,Op0c60,Op0c60,Op0c60,Op0c60,Op0c60,Op0c60 ;@ 0c60 - .long Op0c68,Op0c68,Op0c68,Op0c68,Op0c68,Op0c68,Op0c68,Op0c68 ;@ 0c68 - .long Op0c70,Op0c70,Op0c70,Op0c70,Op0c70,Op0c70,Op0c70,Op0c70 ;@ 0c70 - .long Op0c78,Op0c79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c78 - .long Op0c80,Op0c80,Op0c80,Op0c80,Op0c80,Op0c80,Op0c80,Op0c80 ;@ 0c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0c88 - .long Op0c90,Op0c90,Op0c90,Op0c90,Op0c90,Op0c90,Op0c90,Op0c90 ;@ 0c90 - .long Op0c98,Op0c98,Op0c98,Op0c98,Op0c98,Op0c98,Op0c98,Op0c98 ;@ 0c98 - .long Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0,Op0ca0 ;@ 0ca0 - .long Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8,Op0ca8 ;@ 0ca8 - .long Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0,Op0cb0 ;@ 0cb0 - .long Op0cb8,Op0cb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ce0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ce8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0cf8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0d00 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0d08 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0d10 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0d18 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0d20 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0d28 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0d30 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0d38 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0d40 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0d48 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0d50 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0d58 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0d60 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0d68 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0d70 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0d78 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0d80 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0d88 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0d90 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0d98 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 0da0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 0da8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 0db0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0db8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 0dc0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 0dc8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 0dd0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 0dd8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 0de0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 0de8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 0df0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0df8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0e98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ea0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ea8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0eb0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0eb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ec8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ed0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ed8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ee0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ee8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ef0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ef8 - .long Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100,Op0100 ;@ 0f00 - .long Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108,Op0108 ;@ 0f08 - .long Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110,Op0110 ;@ 0f10 - .long Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op0118,Op011f ;@ 0f18 - .long Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0120,Op0127 ;@ 0f20 - .long Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128,Op0128 ;@ 0f28 - .long Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130,Op0130 ;@ 0f30 - .long Op0138,Op0139,Op013a,Op013b,Op013c,Op____,Op____,Op____ ;@ 0f38 - .long Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140,Op0140 ;@ 0f40 - .long Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148,Op0148 ;@ 0f48 - .long Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150,Op0150 ;@ 0f50 - .long Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op0158,Op015f ;@ 0f58 - .long Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0160,Op0167 ;@ 0f60 - .long Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168,Op0168 ;@ 0f68 - .long Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170,Op0170 ;@ 0f70 - .long Op0178,Op0179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0f78 - .long Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180,Op0180 ;@ 0f80 - .long Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188,Op0188 ;@ 0f88 - .long Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190,Op0190 ;@ 0f90 - .long Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op0198,Op019f ;@ 0f98 - .long Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a0,Op01a7 ;@ 0fa0 - .long Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8,Op01a8 ;@ 0fa8 - .long Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0,Op01b0 ;@ 0fb0 - .long Op01b8,Op01b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0fb8 - .long Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0,Op01c0 ;@ 0fc0 - .long Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8,Op01c8 ;@ 0fc8 - .long Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0,Op01d0 ;@ 0fd0 - .long Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01d8,Op01df ;@ 0fd8 - .long Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e0,Op01e7 ;@ 0fe0 - .long Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8,Op01e8 ;@ 0fe8 - .long Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0,Op01f0 ;@ 0ff0 - .long Op01f8,Op01f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 0ff8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1008 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1010 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1018 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1020 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1028 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1030 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1038 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1048 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1050 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1058 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1060 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1068 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1070 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1078 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1088 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1090 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1098 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 10a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 10a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 10b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 10b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 10c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 10c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 10d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 10d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 10e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 10e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 10f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 10f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1108 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1110 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1118 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1120 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1128 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1130 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1138 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1148 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1150 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1158 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1160 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1168 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1170 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1178 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1188 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1190 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1198 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 11a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 11a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 11b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 11b8 - .long Op11c0,Op11c0,Op11c0,Op11c0,Op11c0,Op11c0,Op11c0,Op11c0 ;@ 11c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 11c8 - .long Op11d0,Op11d0,Op11d0,Op11d0,Op11d0,Op11d0,Op11d0,Op11d0 ;@ 11d0 - .long Op11d8,Op11d8,Op11d8,Op11d8,Op11d8,Op11d8,Op11d8,Op11df ;@ 11d8 - .long Op11e0,Op11e0,Op11e0,Op11e0,Op11e0,Op11e0,Op11e0,Op11e7 ;@ 11e0 - .long Op11e8,Op11e8,Op11e8,Op11e8,Op11e8,Op11e8,Op11e8,Op11e8 ;@ 11e8 - .long Op11f0,Op11f0,Op11f0,Op11f0,Op11f0,Op11f0,Op11f0,Op11f0 ;@ 11f0 - .long Op11f8,Op11f9,Op11fa,Op11fb,Op11fc,Op____,Op____,Op____ ;@ 11f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1208 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1210 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1218 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1220 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1228 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1230 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1238 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1248 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1250 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1258 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1260 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1268 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1270 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1278 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1288 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1290 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1298 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 12a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 12a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 12b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 12b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 12c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 12c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 12d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 12d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 12e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 12e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 12f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 12f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1308 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1310 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1318 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1320 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1328 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1330 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1338 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1348 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1350 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1358 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1360 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1368 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1370 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1378 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1388 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1390 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1398 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 13a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 13a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 13b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 13b8 - .long Op13c0,Op13c0,Op13c0,Op13c0,Op13c0,Op13c0,Op13c0,Op13c0 ;@ 13c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 13c8 - .long Op13d0,Op13d0,Op13d0,Op13d0,Op13d0,Op13d0,Op13d0,Op13d0 ;@ 13d0 - .long Op13d8,Op13d8,Op13d8,Op13d8,Op13d8,Op13d8,Op13d8,Op13df ;@ 13d8 - .long Op13e0,Op13e0,Op13e0,Op13e0,Op13e0,Op13e0,Op13e0,Op13e7 ;@ 13e0 - .long Op13e8,Op13e8,Op13e8,Op13e8,Op13e8,Op13e8,Op13e8,Op13e8 ;@ 13e8 - .long Op13f0,Op13f0,Op13f0,Op13f0,Op13f0,Op13f0,Op13f0,Op13f0 ;@ 13f0 - .long Op13f8,Op13f9,Op13fa,Op13fb,Op13fc,Op____,Op____,Op____ ;@ 13f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1408 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1410 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1418 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1420 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1428 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1430 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1438 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1448 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1450 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1458 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1460 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1468 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1470 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1478 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1488 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1490 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1498 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 14a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 14a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 14b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 14b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 14c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 14c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 14d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 14d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 14e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 14e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 14f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 14f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1508 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1510 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1518 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1520 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1528 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1530 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1538 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1548 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1550 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1558 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1560 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1568 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1570 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1578 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1588 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1590 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1598 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 15a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 15a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 15b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 15b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 15f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1608 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1610 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1618 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1620 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1628 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1630 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1638 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1648 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1650 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1658 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1660 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1668 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1670 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1678 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1688 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1690 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1698 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 16a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 16a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 16b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 16b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 16c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 16c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 16d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 16d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 16e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 16e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 16f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 16f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1708 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1710 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1718 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1720 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1728 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1730 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1738 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1748 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1750 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1758 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1760 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1768 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1770 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1778 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1788 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1790 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1798 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 17a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 17a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 17b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 17b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 17f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1808 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1810 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1818 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1820 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1828 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1830 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1838 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1848 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1850 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1858 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1860 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1868 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1870 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1878 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1888 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1890 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1898 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 18a0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 18a8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 18b0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 18b8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 18c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 18c8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 18d0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 18d8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 18e0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 18e8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 18f0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 18f8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1908 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1910 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1918 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1920 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1928 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1930 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1938 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1948 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1950 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1958 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1960 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1968 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1970 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1978 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1988 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1990 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1998 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 19a0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 19a8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 19b0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 19b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 19f8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a08 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1a10 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1a18 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1a20 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1a28 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1a30 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1a38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a78 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1a88 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1a90 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1a98 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 1aa0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 1aa8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 1ab0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 1ab8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 1ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ac8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 1ad0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 1ad8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 1ae0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 1ae8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 1af0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 1af8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1b08 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1b10 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1b18 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1b20 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1b28 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1b30 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1b38 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1b48 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1b50 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1b58 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1b60 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1b68 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1b70 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1b78 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1b88 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1b90 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1b98 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 1ba0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 1ba8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 1bb0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 1bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1bf8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c08 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1c10 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1c18 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1c20 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1c28 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1c30 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1c38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c78 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1c88 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1c90 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1c98 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 1ca0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 1ca8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 1cb0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 1cb8 - .long Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0,Op10c0 ;@ 1cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1cc8 - .long Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0,Op10d0 ;@ 1cd0 - .long Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10d8,Op10df ;@ 1cd8 - .long Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e0,Op10e7 ;@ 1ce0 - .long Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8,Op10e8 ;@ 1ce8 - .long Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0,Op10f0 ;@ 1cf0 - .long Op10f8,Op10f9,Op10fa,Op10fb,Op10fc,Op____,Op____,Op____ ;@ 1cf8 - .long Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100,Op1100 ;@ 1d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1d08 - .long Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110,Op1110 ;@ 1d10 - .long Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op1118,Op111f ;@ 1d18 - .long Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1120,Op1127 ;@ 1d20 - .long Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128,Op1128 ;@ 1d28 - .long Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130,Op1130 ;@ 1d30 - .long Op1138,Op1139,Op113a,Op113b,Op113c,Op____,Op____,Op____ ;@ 1d38 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1d48 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1d50 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1d58 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1d60 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1d68 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1d70 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1d78 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1d88 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1d90 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1d98 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 1da0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 1da8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 1db0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 1db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1df8 - .long Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000,Op1000 ;@ 1e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e08 - .long Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010,Op1010 ;@ 1e10 - .long Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op1018,Op101f ;@ 1e18 - .long Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1020,Op1027 ;@ 1e20 - .long Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028,Op1028 ;@ 1e28 - .long Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030,Op1030 ;@ 1e30 - .long Op1038,Op1039,Op103a,Op103b,Op103c,Op____,Op____,Op____ ;@ 1e38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e78 - .long Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080,Op1080 ;@ 1e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1e88 - .long Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090,Op1090 ;@ 1e90 - .long Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op1098,Op109f ;@ 1e98 - .long Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a0,Op10a7 ;@ 1ea0 - .long Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8,Op10a8 ;@ 1ea8 - .long Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0,Op10b0 ;@ 1eb0 - .long Op10b8,Op10b9,Op10ba,Op10bb,Op10bc,Op____,Op____,Op____ ;@ 1eb8 - .long Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0,Op1ec0 ;@ 1ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ec8 - .long Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0,Op1ed0 ;@ 1ed0 - .long Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1ed8,Op1edf ;@ 1ed8 - .long Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee0,Op1ee7 ;@ 1ee0 - .long Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8,Op1ee8 ;@ 1ee8 - .long Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0,Op1ef0 ;@ 1ef0 - .long Op1ef8,Op1ef9,Op1efa,Op1efb,Op1efc,Op____,Op____,Op____ ;@ 1ef8 - .long Op1f00,Op1f00,Op1f00,Op1f00,Op1f00,Op1f00,Op1f00,Op1f00 ;@ 1f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1f08 - .long Op1f10,Op1f10,Op1f10,Op1f10,Op1f10,Op1f10,Op1f10,Op1f10 ;@ 1f10 - .long Op1f18,Op1f18,Op1f18,Op1f18,Op1f18,Op1f18,Op1f18,Op1f1f ;@ 1f18 - .long Op1f20,Op1f20,Op1f20,Op1f20,Op1f20,Op1f20,Op1f20,Op1f27 ;@ 1f20 - .long Op1f28,Op1f28,Op1f28,Op1f28,Op1f28,Op1f28,Op1f28,Op1f28 ;@ 1f28 - .long Op1f30,Op1f30,Op1f30,Op1f30,Op1f30,Op1f30,Op1f30,Op1f30 ;@ 1f30 - .long Op1f38,Op1f39,Op1f3a,Op1f3b,Op1f3c,Op____,Op____,Op____ ;@ 1f38 - .long Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140,Op1140 ;@ 1f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1f48 - .long Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150,Op1150 ;@ 1f50 - .long Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op1158,Op115f ;@ 1f58 - .long Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1160,Op1167 ;@ 1f60 - .long Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168,Op1168 ;@ 1f68 - .long Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170,Op1170 ;@ 1f70 - .long Op1178,Op1179,Op117a,Op117b,Op117c,Op____,Op____,Op____ ;@ 1f78 - .long Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180,Op1180 ;@ 1f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1f88 - .long Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190,Op1190 ;@ 1f90 - .long Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op1198,Op119f ;@ 1f98 - .long Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a0,Op11a7 ;@ 1fa0 - .long Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8,Op11a8 ;@ 1fa8 - .long Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0,Op11b0 ;@ 1fb0 - .long Op11b8,Op11b9,Op11ba,Op11bb,Op11bc,Op____,Op____,Op____ ;@ 1fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 1ff8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2000 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2008 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2010 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2018 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2020 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2028 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2030 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2038 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2040 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2048 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2050 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2058 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2060 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2068 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2070 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2078 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2080 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2088 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2090 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2098 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 20a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 20a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 20b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 20b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 20c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 20c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 20d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 20d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 20e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 20e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 20f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 20f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2100 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2108 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2110 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2118 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2120 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2128 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2130 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2138 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2140 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2148 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2150 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2158 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2160 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2168 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2170 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2178 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2180 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2188 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2190 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2198 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 21a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 21a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 21b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 21b8 - .long Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0 ;@ 21c0 - .long Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0,Op21c0 ;@ 21c8 - .long Op21d0,Op21d0,Op21d0,Op21d0,Op21d0,Op21d0,Op21d0,Op21d0 ;@ 21d0 - .long Op21d8,Op21d8,Op21d8,Op21d8,Op21d8,Op21d8,Op21d8,Op21d8 ;@ 21d8 - .long Op21e0,Op21e0,Op21e0,Op21e0,Op21e0,Op21e0,Op21e0,Op21e0 ;@ 21e0 - .long Op21e8,Op21e8,Op21e8,Op21e8,Op21e8,Op21e8,Op21e8,Op21e8 ;@ 21e8 - .long Op21f0,Op21f0,Op21f0,Op21f0,Op21f0,Op21f0,Op21f0,Op21f0 ;@ 21f0 - .long Op21f8,Op21f9,Op21fa,Op21fb,Op21fc,Op____,Op____,Op____ ;@ 21f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2200 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2208 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2210 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2218 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2220 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2228 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2230 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2238 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2240 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2248 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2250 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2258 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2260 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2268 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2270 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2278 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2280 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2288 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2290 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2298 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 22a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 22a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 22b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 22b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 22c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 22c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 22d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 22d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 22e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 22e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 22f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 22f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2300 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2308 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2310 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2318 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2320 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2328 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2330 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2338 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2340 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2348 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2350 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2358 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2360 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2368 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2370 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2378 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2380 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2388 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2390 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2398 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 23a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 23a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 23b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 23b8 - .long Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0 ;@ 23c0 - .long Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0,Op23c0 ;@ 23c8 - .long Op23d0,Op23d0,Op23d0,Op23d0,Op23d0,Op23d0,Op23d0,Op23d0 ;@ 23d0 - .long Op23d8,Op23d8,Op23d8,Op23d8,Op23d8,Op23d8,Op23d8,Op23d8 ;@ 23d8 - .long Op23e0,Op23e0,Op23e0,Op23e0,Op23e0,Op23e0,Op23e0,Op23e0 ;@ 23e0 - .long Op23e8,Op23e8,Op23e8,Op23e8,Op23e8,Op23e8,Op23e8,Op23e8 ;@ 23e8 - .long Op23f0,Op23f0,Op23f0,Op23f0,Op23f0,Op23f0,Op23f0,Op23f0 ;@ 23f0 - .long Op23f8,Op23f9,Op23fa,Op23fb,Op23fc,Op____,Op____,Op____ ;@ 23f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2400 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2408 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2410 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2418 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2420 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2428 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2430 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2438 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2440 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2448 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2450 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2458 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2460 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2468 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2470 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2478 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2480 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2488 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2490 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2498 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 24a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 24a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 24b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 24b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 24c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 24c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 24d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 24d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 24e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 24e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 24f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 24f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2500 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2508 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2510 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2518 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2520 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2528 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2530 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2538 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2540 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2548 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2550 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2558 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2560 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2568 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2570 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2578 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2580 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2588 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2590 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2598 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 25a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 25a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 25b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 25b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 25f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2600 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2608 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2610 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2618 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2620 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2628 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2630 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2638 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2640 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2648 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2650 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2658 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2660 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2668 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2670 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2678 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2680 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2688 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2690 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2698 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 26a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 26a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 26b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 26b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 26c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 26c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 26d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 26d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 26e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 26e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 26f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 26f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2700 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2708 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2710 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2718 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2720 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2728 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2730 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2738 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2740 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2748 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2750 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2758 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2760 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2768 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2770 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2778 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2780 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2788 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2790 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2798 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 27a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 27a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 27b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 27b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 27f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2800 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2808 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2810 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2818 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2820 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2828 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2830 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2838 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2840 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2848 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2850 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2858 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2860 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2868 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2870 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2878 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2880 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2888 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2890 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2898 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 28a0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 28a8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 28b0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 28b8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 28c0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 28c8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 28d0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 28d8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 28e0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 28e8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 28f0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 28f8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2900 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2908 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2910 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2918 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2920 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2928 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2930 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2938 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2940 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2948 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2950 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2958 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2960 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2968 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2970 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2978 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2980 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2988 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2990 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2998 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 29a0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 29a8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 29b0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 29b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 29f8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2a00 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2a08 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2a10 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2a18 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2a20 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2a28 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2a30 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2a38 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2a40 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2a48 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2a50 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2a58 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2a60 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2a68 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2a70 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2a78 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2a80 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2a88 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2a90 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2a98 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 2aa0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 2aa8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 2ab0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 2ab8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2ac0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2ac8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 2ad0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 2ad8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 2ae0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 2ae8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 2af0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 2af8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2b00 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2b08 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2b10 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2b18 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2b20 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2b28 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2b30 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2b38 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2b40 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2b48 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2b50 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2b58 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2b60 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2b68 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2b70 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2b78 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2b80 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2b88 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2b90 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2b98 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 2ba0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 2ba8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 2bb0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 2bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2bf8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2c00 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2c08 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2c10 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2c18 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2c20 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2c28 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2c30 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2c38 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2c40 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2c48 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2c50 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2c58 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2c60 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2c68 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2c70 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2c78 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2c80 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2c88 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2c90 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2c98 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 2ca0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 2ca8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 2cb0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 2cb8 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2cc0 - .long Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0,Op20c0 ;@ 2cc8 - .long Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0,Op20d0 ;@ 2cd0 - .long Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8,Op20d8 ;@ 2cd8 - .long Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0,Op20e0 ;@ 2ce0 - .long Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8,Op20e8 ;@ 2ce8 - .long Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0,Op20f0 ;@ 2cf0 - .long Op20f8,Op20f9,Op20fa,Op20fb,Op20fc,Op____,Op____,Op____ ;@ 2cf8 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2d00 - .long Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100,Op2100 ;@ 2d08 - .long Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110,Op2110 ;@ 2d10 - .long Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118,Op2118 ;@ 2d18 - .long Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120,Op2120 ;@ 2d20 - .long Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128,Op2128 ;@ 2d28 - .long Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130,Op2130 ;@ 2d30 - .long Op2138,Op2139,Op213a,Op213b,Op213c,Op____,Op____,Op____ ;@ 2d38 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2d40 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2d48 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2d50 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2d58 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2d60 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2d68 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2d70 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2d78 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2d80 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2d88 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2d90 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2d98 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 2da0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 2da8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 2db0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 2db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2df8 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2e00 - .long Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000,Op2000 ;@ 2e08 - .long Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010,Op2010 ;@ 2e10 - .long Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018,Op2018 ;@ 2e18 - .long Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020,Op2020 ;@ 2e20 - .long Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028,Op2028 ;@ 2e28 - .long Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030,Op2030 ;@ 2e30 - .long Op2038,Op2039,Op203a,Op203b,Op203c,Op____,Op____,Op____ ;@ 2e38 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2e40 - .long Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040,Op2040 ;@ 2e48 - .long Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050,Op2050 ;@ 2e50 - .long Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058,Op2058 ;@ 2e58 - .long Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060,Op2060 ;@ 2e60 - .long Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068,Op2068 ;@ 2e68 - .long Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070,Op2070 ;@ 2e70 - .long Op2078,Op2079,Op207a,Op207b,Op207c,Op____,Op____,Op____ ;@ 2e78 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2e80 - .long Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080,Op2080 ;@ 2e88 - .long Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090,Op2090 ;@ 2e90 - .long Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098,Op2098 ;@ 2e98 - .long Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0,Op20a0 ;@ 2ea0 - .long Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8,Op20a8 ;@ 2ea8 - .long Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0,Op20b0 ;@ 2eb0 - .long Op20b8,Op20b9,Op20ba,Op20bb,Op20bc,Op____,Op____,Op____ ;@ 2eb8 - .long Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0 ;@ 2ec0 - .long Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0,Op2ec0 ;@ 2ec8 - .long Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0,Op2ed0 ;@ 2ed0 - .long Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8,Op2ed8 ;@ 2ed8 - .long Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0,Op2ee0 ;@ 2ee0 - .long Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8,Op2ee8 ;@ 2ee8 - .long Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0,Op2ef0 ;@ 2ef0 - .long Op2ef8,Op2ef9,Op2efa,Op2efb,Op2efc,Op____,Op____,Op____ ;@ 2ef8 - .long Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00 ;@ 2f00 - .long Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00,Op2f00 ;@ 2f08 - .long Op2f10,Op2f10,Op2f10,Op2f10,Op2f10,Op2f10,Op2f10,Op2f10 ;@ 2f10 - .long Op2f18,Op2f18,Op2f18,Op2f18,Op2f18,Op2f18,Op2f18,Op2f18 ;@ 2f18 - .long Op2f20,Op2f20,Op2f20,Op2f20,Op2f20,Op2f20,Op2f20,Op2f20 ;@ 2f20 - .long Op2f28,Op2f28,Op2f28,Op2f28,Op2f28,Op2f28,Op2f28,Op2f28 ;@ 2f28 - .long Op2f30,Op2f30,Op2f30,Op2f30,Op2f30,Op2f30,Op2f30,Op2f30 ;@ 2f30 - .long Op2f38,Op2f39,Op2f3a,Op2f3b,Op2f3c,Op____,Op____,Op____ ;@ 2f38 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2f40 - .long Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140,Op2140 ;@ 2f48 - .long Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150,Op2150 ;@ 2f50 - .long Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158,Op2158 ;@ 2f58 - .long Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160,Op2160 ;@ 2f60 - .long Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168,Op2168 ;@ 2f68 - .long Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170,Op2170 ;@ 2f70 - .long Op2178,Op2179,Op217a,Op217b,Op217c,Op____,Op____,Op____ ;@ 2f78 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2f80 - .long Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180,Op2180 ;@ 2f88 - .long Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190,Op2190 ;@ 2f90 - .long Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198,Op2198 ;@ 2f98 - .long Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0,Op21a0 ;@ 2fa0 - .long Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8,Op21a8 ;@ 2fa8 - .long Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0,Op21b0 ;@ 2fb0 - .long Op21b8,Op21b9,Op21ba,Op21bb,Op21bc,Op____,Op____,Op____ ;@ 2fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 2ff8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3000 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3008 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3010 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3018 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3020 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3028 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3030 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3038 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3040 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3048 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3050 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3058 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3060 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3068 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3070 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3078 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3080 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3088 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3090 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3098 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 30a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 30a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 30b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 30b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 30c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 30c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 30d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 30d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 30e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 30e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 30f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 30f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3100 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3108 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3110 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3118 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3120 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3128 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3130 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3138 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3140 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3148 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3150 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3158 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3160 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3168 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3170 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3178 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3180 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3188 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3190 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3198 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 31a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 31a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 31b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 31b8 - .long Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0 ;@ 31c0 - .long Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0,Op31c0 ;@ 31c8 - .long Op31d0,Op31d0,Op31d0,Op31d0,Op31d0,Op31d0,Op31d0,Op31d0 ;@ 31d0 - .long Op31d8,Op31d8,Op31d8,Op31d8,Op31d8,Op31d8,Op31d8,Op31d8 ;@ 31d8 - .long Op31e0,Op31e0,Op31e0,Op31e0,Op31e0,Op31e0,Op31e0,Op31e0 ;@ 31e0 - .long Op31e8,Op31e8,Op31e8,Op31e8,Op31e8,Op31e8,Op31e8,Op31e8 ;@ 31e8 - .long Op31f0,Op31f0,Op31f0,Op31f0,Op31f0,Op31f0,Op31f0,Op31f0 ;@ 31f0 - .long Op31f8,Op31f9,Op31fa,Op31fb,Op31fc,Op____,Op____,Op____ ;@ 31f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3200 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3208 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3210 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3218 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3220 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3228 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3230 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3238 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3240 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3248 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3250 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3258 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3260 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3268 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3270 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3278 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3280 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3288 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3290 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3298 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 32a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 32a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 32b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 32b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 32c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 32c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 32d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 32d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 32e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 32e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 32f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 32f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3300 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3308 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3310 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3318 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3320 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3328 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3330 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3338 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3340 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3348 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3350 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3358 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3360 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3368 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3370 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3378 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3380 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3388 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3390 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3398 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 33a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 33a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 33b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 33b8 - .long Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0 ;@ 33c0 - .long Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0,Op33c0 ;@ 33c8 - .long Op33d0,Op33d0,Op33d0,Op33d0,Op33d0,Op33d0,Op33d0,Op33d0 ;@ 33d0 - .long Op33d8,Op33d8,Op33d8,Op33d8,Op33d8,Op33d8,Op33d8,Op33d8 ;@ 33d8 - .long Op33e0,Op33e0,Op33e0,Op33e0,Op33e0,Op33e0,Op33e0,Op33e0 ;@ 33e0 - .long Op33e8,Op33e8,Op33e8,Op33e8,Op33e8,Op33e8,Op33e8,Op33e8 ;@ 33e8 - .long Op33f0,Op33f0,Op33f0,Op33f0,Op33f0,Op33f0,Op33f0,Op33f0 ;@ 33f0 - .long Op33f8,Op33f9,Op33fa,Op33fb,Op33fc,Op____,Op____,Op____ ;@ 33f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3400 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3408 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3410 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3418 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3420 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3428 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3430 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3438 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3440 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3448 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3450 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3458 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3460 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3468 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3470 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3478 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3480 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3488 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3490 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3498 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 34a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 34a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 34b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 34b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 34c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 34c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 34d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 34d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 34e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 34e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 34f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 34f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3500 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3508 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3510 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3518 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3520 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3528 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3530 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3538 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3540 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3548 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3550 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3558 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3560 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3568 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3570 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3578 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3580 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3588 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3590 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3598 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 35a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 35a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 35b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 35b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 35f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3600 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3608 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3610 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3618 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3620 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3628 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3630 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3638 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3640 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3648 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3650 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3658 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3660 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3668 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3670 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3678 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3680 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3688 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3690 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3698 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 36a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 36a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 36b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 36b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 36c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 36c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 36d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 36d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 36e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 36e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 36f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 36f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3700 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3708 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3710 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3718 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3720 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3728 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3730 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3738 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3740 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3748 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3750 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3758 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3760 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3768 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3770 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3778 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3780 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3788 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3790 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3798 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 37a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 37a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 37b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 37b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 37f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3800 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3808 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3810 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3818 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3820 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3828 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3830 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3838 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3840 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3848 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3850 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3858 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3860 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3868 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3870 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3878 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3880 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3888 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3890 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3898 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 38a0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 38a8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 38b0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 38b8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 38c0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 38c8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 38d0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 38d8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 38e0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 38e8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 38f0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 38f8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3900 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3908 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3910 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3918 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3920 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3928 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3930 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3938 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3940 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3948 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3950 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3958 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3960 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3968 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3970 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3978 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3980 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3988 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3990 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3998 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 39a0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 39a8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 39b0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 39b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 39f8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3a00 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3a08 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3a10 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3a18 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3a20 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3a28 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3a30 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3a38 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3a40 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3a48 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3a50 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3a58 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3a60 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3a68 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3a70 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3a78 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3a80 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3a88 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3a90 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3a98 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 3aa0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 3aa8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 3ab0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 3ab8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3ac0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3ac8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 3ad0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 3ad8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 3ae0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 3ae8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 3af0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 3af8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3b00 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3b08 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3b10 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3b18 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3b20 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3b28 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3b30 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3b38 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3b40 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3b48 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3b50 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3b58 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3b60 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3b68 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3b70 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3b78 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3b80 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3b88 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3b90 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3b98 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 3ba0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 3ba8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 3bb0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 3bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3bf8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3c00 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3c08 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3c10 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3c18 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3c20 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3c28 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3c30 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3c38 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3c40 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3c48 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3c50 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3c58 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3c60 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3c68 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3c70 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3c78 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3c80 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3c88 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3c90 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3c98 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 3ca0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 3ca8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 3cb0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 3cb8 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3cc0 - .long Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0,Op30c0 ;@ 3cc8 - .long Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0,Op30d0 ;@ 3cd0 - .long Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8,Op30d8 ;@ 3cd8 - .long Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0,Op30e0 ;@ 3ce0 - .long Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8,Op30e8 ;@ 3ce8 - .long Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0,Op30f0 ;@ 3cf0 - .long Op30f8,Op30f9,Op30fa,Op30fb,Op30fc,Op____,Op____,Op____ ;@ 3cf8 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3d00 - .long Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100,Op3100 ;@ 3d08 - .long Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110,Op3110 ;@ 3d10 - .long Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118,Op3118 ;@ 3d18 - .long Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120,Op3120 ;@ 3d20 - .long Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128,Op3128 ;@ 3d28 - .long Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130,Op3130 ;@ 3d30 - .long Op3138,Op3139,Op313a,Op313b,Op313c,Op____,Op____,Op____ ;@ 3d38 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3d40 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3d48 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3d50 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3d58 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3d60 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3d68 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3d70 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3d78 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3d80 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3d88 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3d90 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3d98 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 3da0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 3da8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 3db0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 3db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3df8 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3e00 - .long Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000,Op3000 ;@ 3e08 - .long Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010,Op3010 ;@ 3e10 - .long Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018,Op3018 ;@ 3e18 - .long Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020,Op3020 ;@ 3e20 - .long Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028,Op3028 ;@ 3e28 - .long Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030,Op3030 ;@ 3e30 - .long Op3038,Op3039,Op303a,Op303b,Op303c,Op____,Op____,Op____ ;@ 3e38 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3e40 - .long Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040,Op3040 ;@ 3e48 - .long Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050,Op3050 ;@ 3e50 - .long Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058,Op3058 ;@ 3e58 - .long Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060,Op3060 ;@ 3e60 - .long Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068,Op3068 ;@ 3e68 - .long Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070,Op3070 ;@ 3e70 - .long Op3078,Op3079,Op307a,Op307b,Op307c,Op____,Op____,Op____ ;@ 3e78 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3e80 - .long Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080,Op3080 ;@ 3e88 - .long Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090,Op3090 ;@ 3e90 - .long Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098,Op3098 ;@ 3e98 - .long Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0,Op30a0 ;@ 3ea0 - .long Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8,Op30a8 ;@ 3ea8 - .long Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0,Op30b0 ;@ 3eb0 - .long Op30b8,Op30b9,Op30ba,Op30bb,Op30bc,Op____,Op____,Op____ ;@ 3eb8 - .long Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0 ;@ 3ec0 - .long Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0,Op3ec0 ;@ 3ec8 - .long Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0,Op3ed0 ;@ 3ed0 - .long Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8,Op3ed8 ;@ 3ed8 - .long Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0,Op3ee0 ;@ 3ee0 - .long Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8,Op3ee8 ;@ 3ee8 - .long Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0,Op3ef0 ;@ 3ef0 - .long Op3ef8,Op3ef9,Op3efa,Op3efb,Op3efc,Op____,Op____,Op____ ;@ 3ef8 - .long Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00 ;@ 3f00 - .long Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00,Op3f00 ;@ 3f08 - .long Op3f10,Op3f10,Op3f10,Op3f10,Op3f10,Op3f10,Op3f10,Op3f10 ;@ 3f10 - .long Op3f18,Op3f18,Op3f18,Op3f18,Op3f18,Op3f18,Op3f18,Op3f18 ;@ 3f18 - .long Op3f20,Op3f20,Op3f20,Op3f20,Op3f20,Op3f20,Op3f20,Op3f20 ;@ 3f20 - .long Op3f28,Op3f28,Op3f28,Op3f28,Op3f28,Op3f28,Op3f28,Op3f28 ;@ 3f28 - .long Op3f30,Op3f30,Op3f30,Op3f30,Op3f30,Op3f30,Op3f30,Op3f30 ;@ 3f30 - .long Op3f38,Op3f39,Op3f3a,Op3f3b,Op3f3c,Op____,Op____,Op____ ;@ 3f38 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3f40 - .long Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140,Op3140 ;@ 3f48 - .long Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150,Op3150 ;@ 3f50 - .long Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158,Op3158 ;@ 3f58 - .long Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160,Op3160 ;@ 3f60 - .long Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168,Op3168 ;@ 3f68 - .long Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170,Op3170 ;@ 3f70 - .long Op3178,Op3179,Op317a,Op317b,Op317c,Op____,Op____,Op____ ;@ 3f78 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3f80 - .long Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180,Op3180 ;@ 3f88 - .long Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190,Op3190 ;@ 3f90 - .long Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198,Op3198 ;@ 3f98 - .long Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0,Op31a0 ;@ 3fa0 - .long Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8,Op31a8 ;@ 3fa8 - .long Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0,Op31b0 ;@ 3fb0 - .long Op31b8,Op31b9,Op31ba,Op31bb,Op31bc,Op____,Op____,Op____ ;@ 3fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 3ff8 - .long Op4000,Op4000,Op4000,Op4000,Op4000,Op4000,Op4000,Op4000 ;@ 4000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4008 - .long Op4010,Op4010,Op4010,Op4010,Op4010,Op4010,Op4010,Op4010 ;@ 4010 - .long Op4018,Op4018,Op4018,Op4018,Op4018,Op4018,Op4018,Op401f ;@ 4018 - .long Op4020,Op4020,Op4020,Op4020,Op4020,Op4020,Op4020,Op4027 ;@ 4020 - .long Op4028,Op4028,Op4028,Op4028,Op4028,Op4028,Op4028,Op4028 ;@ 4028 - .long Op4030,Op4030,Op4030,Op4030,Op4030,Op4030,Op4030,Op4030 ;@ 4030 - .long Op4038,Op4039,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4038 - .long Op4040,Op4040,Op4040,Op4040,Op4040,Op4040,Op4040,Op4040 ;@ 4040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4048 - .long Op4050,Op4050,Op4050,Op4050,Op4050,Op4050,Op4050,Op4050 ;@ 4050 - .long Op4058,Op4058,Op4058,Op4058,Op4058,Op4058,Op4058,Op4058 ;@ 4058 - .long Op4060,Op4060,Op4060,Op4060,Op4060,Op4060,Op4060,Op4060 ;@ 4060 - .long Op4068,Op4068,Op4068,Op4068,Op4068,Op4068,Op4068,Op4068 ;@ 4068 - .long Op4070,Op4070,Op4070,Op4070,Op4070,Op4070,Op4070,Op4070 ;@ 4070 - .long Op4078,Op4079,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4078 - .long Op4080,Op4080,Op4080,Op4080,Op4080,Op4080,Op4080,Op4080 ;@ 4080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4088 - .long Op4090,Op4090,Op4090,Op4090,Op4090,Op4090,Op4090,Op4090 ;@ 4090 - .long Op4098,Op4098,Op4098,Op4098,Op4098,Op4098,Op4098,Op4098 ;@ 4098 - .long Op40a0,Op40a0,Op40a0,Op40a0,Op40a0,Op40a0,Op40a0,Op40a0 ;@ 40a0 - .long Op40a8,Op40a8,Op40a8,Op40a8,Op40a8,Op40a8,Op40a8,Op40a8 ;@ 40a8 - .long Op40b0,Op40b0,Op40b0,Op40b0,Op40b0,Op40b0,Op40b0,Op40b0 ;@ 40b0 - .long Op40b8,Op40b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 40b8 - .long Op40c0,Op40c0,Op40c0,Op40c0,Op40c0,Op40c0,Op40c0,Op40c0 ;@ 40c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 40c8 - .long Op40d0,Op40d0,Op40d0,Op40d0,Op40d0,Op40d0,Op40d0,Op40d0 ;@ 40d0 - .long Op40d8,Op40d8,Op40d8,Op40d8,Op40d8,Op40d8,Op40d8,Op40d8 ;@ 40d8 - .long Op40e0,Op40e0,Op40e0,Op40e0,Op40e0,Op40e0,Op40e0,Op40e0 ;@ 40e0 - .long Op40e8,Op40e8,Op40e8,Op40e8,Op40e8,Op40e8,Op40e8,Op40e8 ;@ 40e8 - .long Op40f0,Op40f0,Op40f0,Op40f0,Op40f0,Op40f0,Op40f0,Op40f0 ;@ 40f0 - .long Op40f8,Op40f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 40f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4108 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4110 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4118 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4120 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4128 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4130 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4138 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4148 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4150 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4158 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4160 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4168 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4170 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4178 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4188 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4190 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4198 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 41a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 41a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 41b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 41b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 41d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 41e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 41e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 41f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 41f8 - .long Op4200,Op4200,Op4200,Op4200,Op4200,Op4200,Op4200,Op4200 ;@ 4200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4208 - .long Op4210,Op4210,Op4210,Op4210,Op4210,Op4210,Op4210,Op4210 ;@ 4210 - .long Op4218,Op4218,Op4218,Op4218,Op4218,Op4218,Op4218,Op421f ;@ 4218 - .long Op4220,Op4220,Op4220,Op4220,Op4220,Op4220,Op4220,Op4227 ;@ 4220 - .long Op4228,Op4228,Op4228,Op4228,Op4228,Op4228,Op4228,Op4228 ;@ 4228 - .long Op4230,Op4230,Op4230,Op4230,Op4230,Op4230,Op4230,Op4230 ;@ 4230 - .long Op4238,Op4239,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4238 - .long Op4240,Op4240,Op4240,Op4240,Op4240,Op4240,Op4240,Op4240 ;@ 4240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4248 - .long Op4250,Op4250,Op4250,Op4250,Op4250,Op4250,Op4250,Op4250 ;@ 4250 - .long Op4258,Op4258,Op4258,Op4258,Op4258,Op4258,Op4258,Op4258 ;@ 4258 - .long Op4260,Op4260,Op4260,Op4260,Op4260,Op4260,Op4260,Op4260 ;@ 4260 - .long Op4268,Op4268,Op4268,Op4268,Op4268,Op4268,Op4268,Op4268 ;@ 4268 - .long Op4270,Op4270,Op4270,Op4270,Op4270,Op4270,Op4270,Op4270 ;@ 4270 - .long Op4278,Op4279,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4278 - .long Op4280,Op4280,Op4280,Op4280,Op4280,Op4280,Op4280,Op4280 ;@ 4280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4288 - .long Op4290,Op4290,Op4290,Op4290,Op4290,Op4290,Op4290,Op4290 ;@ 4290 - .long Op4298,Op4298,Op4298,Op4298,Op4298,Op4298,Op4298,Op4298 ;@ 4298 - .long Op42a0,Op42a0,Op42a0,Op42a0,Op42a0,Op42a0,Op42a0,Op42a0 ;@ 42a0 - .long Op42a8,Op42a8,Op42a8,Op42a8,Op42a8,Op42a8,Op42a8,Op42a8 ;@ 42a8 - .long Op42b0,Op42b0,Op42b0,Op42b0,Op42b0,Op42b0,Op42b0,Op42b0 ;@ 42b0 - .long Op42b8,Op42b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 42f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4308 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4310 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4318 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4320 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4328 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4330 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4338 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4348 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4350 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4358 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4360 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4368 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4370 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4378 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4388 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4390 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4398 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 43a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 43a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 43b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 43b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 43d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 43e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 43e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 43f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 43f8 - .long Op4400,Op4400,Op4400,Op4400,Op4400,Op4400,Op4400,Op4400 ;@ 4400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4408 - .long Op4410,Op4410,Op4410,Op4410,Op4410,Op4410,Op4410,Op4410 ;@ 4410 - .long Op4418,Op4418,Op4418,Op4418,Op4418,Op4418,Op4418,Op441f ;@ 4418 - .long Op4420,Op4420,Op4420,Op4420,Op4420,Op4420,Op4420,Op4427 ;@ 4420 - .long Op4428,Op4428,Op4428,Op4428,Op4428,Op4428,Op4428,Op4428 ;@ 4428 - .long Op4430,Op4430,Op4430,Op4430,Op4430,Op4430,Op4430,Op4430 ;@ 4430 - .long Op4438,Op4439,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4438 - .long Op4440,Op4440,Op4440,Op4440,Op4440,Op4440,Op4440,Op4440 ;@ 4440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4448 - .long Op4450,Op4450,Op4450,Op4450,Op4450,Op4450,Op4450,Op4450 ;@ 4450 - .long Op4458,Op4458,Op4458,Op4458,Op4458,Op4458,Op4458,Op4458 ;@ 4458 - .long Op4460,Op4460,Op4460,Op4460,Op4460,Op4460,Op4460,Op4460 ;@ 4460 - .long Op4468,Op4468,Op4468,Op4468,Op4468,Op4468,Op4468,Op4468 ;@ 4468 - .long Op4470,Op4470,Op4470,Op4470,Op4470,Op4470,Op4470,Op4470 ;@ 4470 - .long Op4478,Op4479,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4478 - .long Op4480,Op4480,Op4480,Op4480,Op4480,Op4480,Op4480,Op4480 ;@ 4480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4488 - .long Op4490,Op4490,Op4490,Op4490,Op4490,Op4490,Op4490,Op4490 ;@ 4490 - .long Op4498,Op4498,Op4498,Op4498,Op4498,Op4498,Op4498,Op4498 ;@ 4498 - .long Op44a0,Op44a0,Op44a0,Op44a0,Op44a0,Op44a0,Op44a0,Op44a0 ;@ 44a0 - .long Op44a8,Op44a8,Op44a8,Op44a8,Op44a8,Op44a8,Op44a8,Op44a8 ;@ 44a8 - .long Op44b0,Op44b0,Op44b0,Op44b0,Op44b0,Op44b0,Op44b0,Op44b0 ;@ 44b0 - .long Op44b8,Op44b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 44b8 - .long Op44c0,Op44c0,Op44c0,Op44c0,Op44c0,Op44c0,Op44c0,Op44c0 ;@ 44c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 44c8 - .long Op44d0,Op44d0,Op44d0,Op44d0,Op44d0,Op44d0,Op44d0,Op44d0 ;@ 44d0 - .long Op44d8,Op44d8,Op44d8,Op44d8,Op44d8,Op44d8,Op44d8,Op44d8 ;@ 44d8 - .long Op44e0,Op44e0,Op44e0,Op44e0,Op44e0,Op44e0,Op44e0,Op44e0 ;@ 44e0 - .long Op44e8,Op44e8,Op44e8,Op44e8,Op44e8,Op44e8,Op44e8,Op44e8 ;@ 44e8 - .long Op44f0,Op44f0,Op44f0,Op44f0,Op44f0,Op44f0,Op44f0,Op44f0 ;@ 44f0 - .long Op44f8,Op44f9,Op44fa,Op44fb,Op44fc,Op____,Op____,Op____ ;@ 44f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4508 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4510 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4518 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4520 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4528 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4530 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4538 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4548 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4550 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4558 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4560 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4568 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4570 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4578 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4588 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4590 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4598 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 45a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 45a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 45b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 45b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 45d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 45e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 45e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 45f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 45f8 - .long Op4600,Op4600,Op4600,Op4600,Op4600,Op4600,Op4600,Op4600 ;@ 4600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4608 - .long Op4610,Op4610,Op4610,Op4610,Op4610,Op4610,Op4610,Op4610 ;@ 4610 - .long Op4618,Op4618,Op4618,Op4618,Op4618,Op4618,Op4618,Op461f ;@ 4618 - .long Op4620,Op4620,Op4620,Op4620,Op4620,Op4620,Op4620,Op4627 ;@ 4620 - .long Op4628,Op4628,Op4628,Op4628,Op4628,Op4628,Op4628,Op4628 ;@ 4628 - .long Op4630,Op4630,Op4630,Op4630,Op4630,Op4630,Op4630,Op4630 ;@ 4630 - .long Op4638,Op4639,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4638 - .long Op4640,Op4640,Op4640,Op4640,Op4640,Op4640,Op4640,Op4640 ;@ 4640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4648 - .long Op4650,Op4650,Op4650,Op4650,Op4650,Op4650,Op4650,Op4650 ;@ 4650 - .long Op4658,Op4658,Op4658,Op4658,Op4658,Op4658,Op4658,Op4658 ;@ 4658 - .long Op4660,Op4660,Op4660,Op4660,Op4660,Op4660,Op4660,Op4660 ;@ 4660 - .long Op4668,Op4668,Op4668,Op4668,Op4668,Op4668,Op4668,Op4668 ;@ 4668 - .long Op4670,Op4670,Op4670,Op4670,Op4670,Op4670,Op4670,Op4670 ;@ 4670 - .long Op4678,Op4679,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4678 - .long Op4680,Op4680,Op4680,Op4680,Op4680,Op4680,Op4680,Op4680 ;@ 4680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4688 - .long Op4690,Op4690,Op4690,Op4690,Op4690,Op4690,Op4690,Op4690 ;@ 4690 - .long Op4698,Op4698,Op4698,Op4698,Op4698,Op4698,Op4698,Op4698 ;@ 4698 - .long Op46a0,Op46a0,Op46a0,Op46a0,Op46a0,Op46a0,Op46a0,Op46a0 ;@ 46a0 - .long Op46a8,Op46a8,Op46a8,Op46a8,Op46a8,Op46a8,Op46a8,Op46a8 ;@ 46a8 - .long Op46b0,Op46b0,Op46b0,Op46b0,Op46b0,Op46b0,Op46b0,Op46b0 ;@ 46b0 - .long Op46b8,Op46b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 46b8 - .long Op46c0,Op46c0,Op46c0,Op46c0,Op46c0,Op46c0,Op46c0,Op46c0 ;@ 46c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 46c8 - .long Op46d0,Op46d0,Op46d0,Op46d0,Op46d0,Op46d0,Op46d0,Op46d0 ;@ 46d0 - .long Op46d8,Op46d8,Op46d8,Op46d8,Op46d8,Op46d8,Op46d8,Op46d8 ;@ 46d8 - .long Op46e0,Op46e0,Op46e0,Op46e0,Op46e0,Op46e0,Op46e0,Op46e0 ;@ 46e0 - .long Op46e8,Op46e8,Op46e8,Op46e8,Op46e8,Op46e8,Op46e8,Op46e8 ;@ 46e8 - .long Op46f0,Op46f0,Op46f0,Op46f0,Op46f0,Op46f0,Op46f0,Op46f0 ;@ 46f0 - .long Op46f8,Op46f9,Op46fa,Op46fb,Op46fc,Op____,Op____,Op____ ;@ 46f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4708 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4710 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4718 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4720 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4728 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4730 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4738 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4748 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4750 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4758 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4760 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4768 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4770 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4778 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4788 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4790 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4798 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 47a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 47a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 47b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 47b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 47d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 47e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 47e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 47f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 47f8 - .long Op4800,Op4800,Op4800,Op4800,Op4800,Op4800,Op4800,Op4800 ;@ 4800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4808 - .long Op4810,Op4810,Op4810,Op4810,Op4810,Op4810,Op4810,Op4810 ;@ 4810 - .long Op4818,Op4818,Op4818,Op4818,Op4818,Op4818,Op4818,Op481f ;@ 4818 - .long Op4820,Op4820,Op4820,Op4820,Op4820,Op4820,Op4820,Op4827 ;@ 4820 - .long Op4828,Op4828,Op4828,Op4828,Op4828,Op4828,Op4828,Op4828 ;@ 4828 - .long Op4830,Op4830,Op4830,Op4830,Op4830,Op4830,Op4830,Op4830 ;@ 4830 - .long Op4838,Op4839,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4838 - .long Op4840,Op4840,Op4840,Op4840,Op4840,Op4840,Op4840,Op4840 ;@ 4840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4848 - .long Op4850,Op4850,Op4850,Op4850,Op4850,Op4850,Op4850,Op4850 ;@ 4850 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4858 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4860 - .long Op4868,Op4868,Op4868,Op4868,Op4868,Op4868,Op4868,Op4868 ;@ 4868 - .long Op4870,Op4870,Op4870,Op4870,Op4870,Op4870,Op4870,Op4870 ;@ 4870 - .long Op4878,Op4879,Op487a,Op487b,Op____,Op____,Op____,Op____ ;@ 4878 - .long Op4880,Op4880,Op4880,Op4880,Op4880,Op4880,Op4880,Op4880 ;@ 4880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4888 - .long Op4890,Op4890,Op4890,Op4890,Op4890,Op4890,Op4890,Op4890 ;@ 4890 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4898 - .long Op48a0,Op48a0,Op48a0,Op48a0,Op48a0,Op48a0,Op48a0,Op48a0 ;@ 48a0 - .long Op48a8,Op48a8,Op48a8,Op48a8,Op48a8,Op48a8,Op48a8,Op48a8 ;@ 48a8 - .long Op48b0,Op48b0,Op48b0,Op48b0,Op48b0,Op48b0,Op48b0,Op48b0 ;@ 48b0 - .long Op48b8,Op48b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48b8 - .long Op48c0,Op48c0,Op48c0,Op48c0,Op48c0,Op48c0,Op48c0,Op48c0 ;@ 48c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48c8 - .long Op48d0,Op48d0,Op48d0,Op48d0,Op48d0,Op48d0,Op48d0,Op48d0 ;@ 48d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48d8 - .long Op48e0,Op48e0,Op48e0,Op48e0,Op48e0,Op48e0,Op48e0,Op48e0 ;@ 48e0 - .long Op48e8,Op48e8,Op48e8,Op48e8,Op48e8,Op48e8,Op48e8,Op48e8 ;@ 48e8 - .long Op48f0,Op48f0,Op48f0,Op48f0,Op48f0,Op48f0,Op48f0,Op48f0 ;@ 48f0 - .long Op48f8,Op48f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 48f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4908 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4910 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4918 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4920 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4928 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4930 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4938 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4948 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4950 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4958 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4960 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4968 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4970 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4978 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4988 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4990 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4998 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 49a0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 49a8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 49b0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 49b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49c8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 49d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 49e0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 49e8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 49f0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 49f8 - .long Op4a00,Op4a00,Op4a00,Op4a00,Op4a00,Op4a00,Op4a00,Op4a00 ;@ 4a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a08 - .long Op4a10,Op4a10,Op4a10,Op4a10,Op4a10,Op4a10,Op4a10,Op4a10 ;@ 4a10 - .long Op4a18,Op4a18,Op4a18,Op4a18,Op4a18,Op4a18,Op4a18,Op4a1f ;@ 4a18 - .long Op4a20,Op4a20,Op4a20,Op4a20,Op4a20,Op4a20,Op4a20,Op4a27 ;@ 4a20 - .long Op4a28,Op4a28,Op4a28,Op4a28,Op4a28,Op4a28,Op4a28,Op4a28 ;@ 4a28 - .long Op4a30,Op4a30,Op4a30,Op4a30,Op4a30,Op4a30,Op4a30,Op4a30 ;@ 4a30 - .long Op4a38,Op4a39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a38 - .long Op4a40,Op4a40,Op4a40,Op4a40,Op4a40,Op4a40,Op4a40,Op4a40 ;@ 4a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a48 - .long Op4a50,Op4a50,Op4a50,Op4a50,Op4a50,Op4a50,Op4a50,Op4a50 ;@ 4a50 - .long Op4a58,Op4a58,Op4a58,Op4a58,Op4a58,Op4a58,Op4a58,Op4a58 ;@ 4a58 - .long Op4a60,Op4a60,Op4a60,Op4a60,Op4a60,Op4a60,Op4a60,Op4a60 ;@ 4a60 - .long Op4a68,Op4a68,Op4a68,Op4a68,Op4a68,Op4a68,Op4a68,Op4a68 ;@ 4a68 - .long Op4a70,Op4a70,Op4a70,Op4a70,Op4a70,Op4a70,Op4a70,Op4a70 ;@ 4a70 - .long Op4a78,Op4a79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a78 - .long Op4a80,Op4a80,Op4a80,Op4a80,Op4a80,Op4a80,Op4a80,Op4a80 ;@ 4a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4a88 - .long Op4a90,Op4a90,Op4a90,Op4a90,Op4a90,Op4a90,Op4a90,Op4a90 ;@ 4a90 - .long Op4a98,Op4a98,Op4a98,Op4a98,Op4a98,Op4a98,Op4a98,Op4a98 ;@ 4a98 - .long Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0,Op4aa0 ;@ 4aa0 - .long Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8,Op4aa8 ;@ 4aa8 - .long Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0,Op4ab0 ;@ 4ab0 - .long Op4ab8,Op4ab9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ab8 - .long Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0,Op4ac0 ;@ 4ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ac8 - .long Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0,Op4ad0 ;@ 4ad0 - .long Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4ad8,Op4adf ;@ 4ad8 - .long Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae0,Op4ae7 ;@ 4ae0 - .long Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8,Op4ae8 ;@ 4ae8 - .long Op4af0,Op4af0,Op4af0,Op4af0,Op4af0,Op4af0,Op4af0,Op4af0 ;@ 4af0 - .long Op4af8,Op4af9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4af8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b78 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4b88 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4b90 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4b98 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 4ba0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 4ba8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 4bb0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 4bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4bc8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 4bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4be0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 4be8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 4bf0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 4bf8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4c88 - .long Op4c90,Op4c90,Op4c90,Op4c90,Op4c90,Op4c90,Op4c90,Op4c90 ;@ 4c90 - .long Op4c98,Op4c98,Op4c98,Op4c98,Op4c98,Op4c98,Op4c98,Op4c98 ;@ 4c98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ca0 - .long Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8,Op4ca8 ;@ 4ca8 - .long Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0,Op4cb0 ;@ 4cb0 - .long Op4cb8,Op4cb9,Op4cba,Op4cbb,Op____,Op____,Op____,Op____ ;@ 4cb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4cc8 - .long Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0,Op4cd0 ;@ 4cd0 - .long Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8,Op4cd8 ;@ 4cd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ce0 - .long Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8,Op4ce8 ;@ 4ce8 - .long Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0,Op4cf0 ;@ 4cf0 - .long Op4cf8,Op4cf9,Op4cfa,Op4cfb,Op____,Op____,Op____,Op____ ;@ 4cf8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d78 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4d88 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4d90 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4d98 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 4da0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 4da8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 4db0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 4db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4dc8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 4dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4de0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 4de8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 4df0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 4df8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e38 - .long Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40 ;@ 4e40 - .long Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40,Op4e40 ;@ 4e48 - .long Op4e50,Op4e50,Op4e50,Op4e50,Op4e50,Op4e50,Op4e50,Op4e57 ;@ 4e50 - .long Op4e58,Op4e58,Op4e58,Op4e58,Op4e58,Op4e58,Op4e58,Op4e58 ;@ 4e58 - .long Op4e60,Op4e60,Op4e60,Op4e60,Op4e60,Op4e60,Op4e60,Op4e60 ;@ 4e60 - .long Op4e68,Op4e68,Op4e68,Op4e68,Op4e68,Op4e68,Op4e68,Op4e68 ;@ 4e68 - .long Op4e70,Op4e71,Op4e72,Op4e73,Op____,Op4e75,Op4e76,Op4e77 ;@ 4e70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e88 - .long Op4e90,Op4e90,Op4e90,Op4e90,Op4e90,Op4e90,Op4e90,Op4e90 ;@ 4e90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4e98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ea0 - .long Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8,Op4ea8 ;@ 4ea8 - .long Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0,Op4eb0 ;@ 4eb0 - .long Op4eb8,Op4eb9,Op4eba,Op4ebb,Op____,Op____,Op____,Op____ ;@ 4eb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ec8 - .long Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0,Op4ed0 ;@ 4ed0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ed8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4ee0 - .long Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8,Op4ee8 ;@ 4ee8 - .long Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0,Op4ef0 ;@ 4ef0 - .long Op4ef8,Op4ef9,Op4efa,Op4efb,Op____,Op____,Op____,Op____ ;@ 4ef8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f78 - .long Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180,Op4180 ;@ 4f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4f88 - .long Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190,Op4190 ;@ 4f90 - .long Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198,Op4198 ;@ 4f98 - .long Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0,Op41a0 ;@ 4fa0 - .long Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8,Op41a8 ;@ 4fa8 - .long Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0,Op41b0 ;@ 4fb0 - .long Op41b8,Op41b9,Op41ba,Op41bb,Op41bc,Op____,Op____,Op____ ;@ 4fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fc8 - .long Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0,Op41d0 ;@ 4fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 4fe0 - .long Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8,Op41e8 ;@ 4fe8 - .long Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0,Op41f0 ;@ 4ff0 - .long Op41f8,Op41f9,Op41fa,Op41fb,Op____,Op____,Op____,Op____ ;@ 4ff8 - .long Op5000,Op5000,Op5000,Op5000,Op5000,Op5000,Op5000,Op5000 ;@ 5000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5008 - .long Op5010,Op5010,Op5010,Op5010,Op5010,Op5010,Op5010,Op5010 ;@ 5010 - .long Op5018,Op5018,Op5018,Op5018,Op5018,Op5018,Op5018,Op501f ;@ 5018 - .long Op5020,Op5020,Op5020,Op5020,Op5020,Op5020,Op5020,Op5027 ;@ 5020 - .long Op5028,Op5028,Op5028,Op5028,Op5028,Op5028,Op5028,Op5028 ;@ 5028 - .long Op5030,Op5030,Op5030,Op5030,Op5030,Op5030,Op5030,Op5030 ;@ 5030 - .long Op5038,Op5039,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5038 - .long Op5040,Op5040,Op5040,Op5040,Op5040,Op5040,Op5040,Op5040 ;@ 5040 - .long Op5048,Op5048,Op5048,Op5048,Op5048,Op5048,Op5048,Op5048 ;@ 5048 - .long Op5050,Op5050,Op5050,Op5050,Op5050,Op5050,Op5050,Op5050 ;@ 5050 - .long Op5058,Op5058,Op5058,Op5058,Op5058,Op5058,Op5058,Op5058 ;@ 5058 - .long Op5060,Op5060,Op5060,Op5060,Op5060,Op5060,Op5060,Op5060 ;@ 5060 - .long Op5068,Op5068,Op5068,Op5068,Op5068,Op5068,Op5068,Op5068 ;@ 5068 - .long Op5070,Op5070,Op5070,Op5070,Op5070,Op5070,Op5070,Op5070 ;@ 5070 - .long Op5078,Op5079,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5078 - .long Op5080,Op5080,Op5080,Op5080,Op5080,Op5080,Op5080,Op5080 ;@ 5080 - .long Op5088,Op5088,Op5088,Op5088,Op5088,Op5088,Op5088,Op5088 ;@ 5088 - .long Op5090,Op5090,Op5090,Op5090,Op5090,Op5090,Op5090,Op5090 ;@ 5090 - .long Op5098,Op5098,Op5098,Op5098,Op5098,Op5098,Op5098,Op5098 ;@ 5098 - .long Op50a0,Op50a0,Op50a0,Op50a0,Op50a0,Op50a0,Op50a0,Op50a0 ;@ 50a0 - .long Op50a8,Op50a8,Op50a8,Op50a8,Op50a8,Op50a8,Op50a8,Op50a8 ;@ 50a8 - .long Op50b0,Op50b0,Op50b0,Op50b0,Op50b0,Op50b0,Op50b0,Op50b0 ;@ 50b0 - .long Op50b8,Op50b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 50b8 - .long Op50c0,Op50c0,Op50c0,Op50c0,Op50c0,Op50c0,Op50c0,Op50c0 ;@ 50c0 - .long Op50c8,Op50c8,Op50c8,Op50c8,Op50c8,Op50c8,Op50c8,Op50c8 ;@ 50c8 - .long Op50d0,Op50d0,Op50d0,Op50d0,Op50d0,Op50d0,Op50d0,Op50d0 ;@ 50d0 - .long Op50d8,Op50d8,Op50d8,Op50d8,Op50d8,Op50d8,Op50d8,Op50df ;@ 50d8 - .long Op50e0,Op50e0,Op50e0,Op50e0,Op50e0,Op50e0,Op50e0,Op50e7 ;@ 50e0 - .long Op50e8,Op50e8,Op50e8,Op50e8,Op50e8,Op50e8,Op50e8,Op50e8 ;@ 50e8 - .long Op50f0,Op50f0,Op50f0,Op50f0,Op50f0,Op50f0,Op50f0,Op50f0 ;@ 50f0 - .long Op50f8,Op50f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 50f8 - .long Op5100,Op5100,Op5100,Op5100,Op5100,Op5100,Op5100,Op5100 ;@ 5100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5108 - .long Op5110,Op5110,Op5110,Op5110,Op5110,Op5110,Op5110,Op5110 ;@ 5110 - .long Op5118,Op5118,Op5118,Op5118,Op5118,Op5118,Op5118,Op511f ;@ 5118 - .long Op5120,Op5120,Op5120,Op5120,Op5120,Op5120,Op5120,Op5127 ;@ 5120 - .long Op5128,Op5128,Op5128,Op5128,Op5128,Op5128,Op5128,Op5128 ;@ 5128 - .long Op5130,Op5130,Op5130,Op5130,Op5130,Op5130,Op5130,Op5130 ;@ 5130 - .long Op5138,Op5139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5138 - .long Op5140,Op5140,Op5140,Op5140,Op5140,Op5140,Op5140,Op5140 ;@ 5140 - .long Op5148,Op5148,Op5148,Op5148,Op5148,Op5148,Op5148,Op5148 ;@ 5148 - .long Op5150,Op5150,Op5150,Op5150,Op5150,Op5150,Op5150,Op5150 ;@ 5150 - .long Op5158,Op5158,Op5158,Op5158,Op5158,Op5158,Op5158,Op5158 ;@ 5158 - .long Op5160,Op5160,Op5160,Op5160,Op5160,Op5160,Op5160,Op5160 ;@ 5160 - .long Op5168,Op5168,Op5168,Op5168,Op5168,Op5168,Op5168,Op5168 ;@ 5168 - .long Op5170,Op5170,Op5170,Op5170,Op5170,Op5170,Op5170,Op5170 ;@ 5170 - .long Op5178,Op5179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5178 - .long Op5180,Op5180,Op5180,Op5180,Op5180,Op5180,Op5180,Op5180 ;@ 5180 - .long Op5188,Op5188,Op5188,Op5188,Op5188,Op5188,Op5188,Op5188 ;@ 5188 - .long Op5190,Op5190,Op5190,Op5190,Op5190,Op5190,Op5190,Op5190 ;@ 5190 - .long Op5198,Op5198,Op5198,Op5198,Op5198,Op5198,Op5198,Op5198 ;@ 5198 - .long Op51a0,Op51a0,Op51a0,Op51a0,Op51a0,Op51a0,Op51a0,Op51a0 ;@ 51a0 - .long Op51a8,Op51a8,Op51a8,Op51a8,Op51a8,Op51a8,Op51a8,Op51a8 ;@ 51a8 - .long Op51b0,Op51b0,Op51b0,Op51b0,Op51b0,Op51b0,Op51b0,Op51b0 ;@ 51b0 - .long Op51b8,Op51b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 51b8 - .long Op51c0,Op51c0,Op51c0,Op51c0,Op51c0,Op51c0,Op51c0,Op51c0 ;@ 51c0 - .long Op51c8,Op51c8,Op51c8,Op51c8,Op51c8,Op51c8,Op51c8,Op51c8 ;@ 51c8 - .long Op51d0,Op51d0,Op51d0,Op51d0,Op51d0,Op51d0,Op51d0,Op51d0 ;@ 51d0 - .long Op51d8,Op51d8,Op51d8,Op51d8,Op51d8,Op51d8,Op51d8,Op51df ;@ 51d8 - .long Op51e0,Op51e0,Op51e0,Op51e0,Op51e0,Op51e0,Op51e0,Op51e7 ;@ 51e0 - .long Op51e8,Op51e8,Op51e8,Op51e8,Op51e8,Op51e8,Op51e8,Op51e8 ;@ 51e8 - .long Op51f0,Op51f0,Op51f0,Op51f0,Op51f0,Op51f0,Op51f0,Op51f0 ;@ 51f0 - .long Op51f8,Op51f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 51f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5208 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5210 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5218 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5220 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5228 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5230 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5238 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5240 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5248 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5250 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5258 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5260 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5268 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5270 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5278 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5280 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5288 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5290 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5298 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 52a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 52a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 52b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 52b8 - .long Op52c0,Op52c0,Op52c0,Op52c0,Op52c0,Op52c0,Op52c0,Op52c0 ;@ 52c0 - .long Op52c8,Op52c8,Op52c8,Op52c8,Op52c8,Op52c8,Op52c8,Op52c8 ;@ 52c8 - .long Op52d0,Op52d0,Op52d0,Op52d0,Op52d0,Op52d0,Op52d0,Op52d0 ;@ 52d0 - .long Op52d8,Op52d8,Op52d8,Op52d8,Op52d8,Op52d8,Op52d8,Op52df ;@ 52d8 - .long Op52e0,Op52e0,Op52e0,Op52e0,Op52e0,Op52e0,Op52e0,Op52e7 ;@ 52e0 - .long Op52e8,Op52e8,Op52e8,Op52e8,Op52e8,Op52e8,Op52e8,Op52e8 ;@ 52e8 - .long Op52f0,Op52f0,Op52f0,Op52f0,Op52f0,Op52f0,Op52f0,Op52f0 ;@ 52f0 - .long Op52f8,Op52f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 52f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5308 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5310 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5318 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5320 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5328 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5330 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5338 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5340 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5348 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5350 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5358 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5360 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5368 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5370 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5378 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5380 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5388 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5390 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5398 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 53a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 53a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 53b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 53b8 - .long Op53c0,Op53c0,Op53c0,Op53c0,Op53c0,Op53c0,Op53c0,Op53c0 ;@ 53c0 - .long Op53c8,Op53c8,Op53c8,Op53c8,Op53c8,Op53c8,Op53c8,Op53c8 ;@ 53c8 - .long Op53d0,Op53d0,Op53d0,Op53d0,Op53d0,Op53d0,Op53d0,Op53d0 ;@ 53d0 - .long Op53d8,Op53d8,Op53d8,Op53d8,Op53d8,Op53d8,Op53d8,Op53df ;@ 53d8 - .long Op53e0,Op53e0,Op53e0,Op53e0,Op53e0,Op53e0,Op53e0,Op53e7 ;@ 53e0 - .long Op53e8,Op53e8,Op53e8,Op53e8,Op53e8,Op53e8,Op53e8,Op53e8 ;@ 53e8 - .long Op53f0,Op53f0,Op53f0,Op53f0,Op53f0,Op53f0,Op53f0,Op53f0 ;@ 53f0 - .long Op53f8,Op53f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 53f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5408 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5410 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5418 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5420 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5428 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5430 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5438 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5440 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5448 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5450 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5458 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5460 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5468 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5470 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5478 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5480 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5488 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5490 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5498 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 54a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 54a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 54b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 54b8 - .long Op54c0,Op54c0,Op54c0,Op54c0,Op54c0,Op54c0,Op54c0,Op54c0 ;@ 54c0 - .long Op54c8,Op54c8,Op54c8,Op54c8,Op54c8,Op54c8,Op54c8,Op54c8 ;@ 54c8 - .long Op54d0,Op54d0,Op54d0,Op54d0,Op54d0,Op54d0,Op54d0,Op54d0 ;@ 54d0 - .long Op54d8,Op54d8,Op54d8,Op54d8,Op54d8,Op54d8,Op54d8,Op54df ;@ 54d8 - .long Op54e0,Op54e0,Op54e0,Op54e0,Op54e0,Op54e0,Op54e0,Op54e7 ;@ 54e0 - .long Op54e8,Op54e8,Op54e8,Op54e8,Op54e8,Op54e8,Op54e8,Op54e8 ;@ 54e8 - .long Op54f0,Op54f0,Op54f0,Op54f0,Op54f0,Op54f0,Op54f0,Op54f0 ;@ 54f0 - .long Op54f8,Op54f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 54f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5508 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5510 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5518 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5520 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5528 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5530 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5538 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5540 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5548 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5550 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5558 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5560 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5568 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5570 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5578 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5580 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5588 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5590 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5598 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 55a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 55a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 55b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 55b8 - .long Op55c0,Op55c0,Op55c0,Op55c0,Op55c0,Op55c0,Op55c0,Op55c0 ;@ 55c0 - .long Op55c8,Op55c8,Op55c8,Op55c8,Op55c8,Op55c8,Op55c8,Op55c8 ;@ 55c8 - .long Op55d0,Op55d0,Op55d0,Op55d0,Op55d0,Op55d0,Op55d0,Op55d0 ;@ 55d0 - .long Op55d8,Op55d8,Op55d8,Op55d8,Op55d8,Op55d8,Op55d8,Op55df ;@ 55d8 - .long Op55e0,Op55e0,Op55e0,Op55e0,Op55e0,Op55e0,Op55e0,Op55e7 ;@ 55e0 - .long Op55e8,Op55e8,Op55e8,Op55e8,Op55e8,Op55e8,Op55e8,Op55e8 ;@ 55e8 - .long Op55f0,Op55f0,Op55f0,Op55f0,Op55f0,Op55f0,Op55f0,Op55f0 ;@ 55f0 - .long Op55f8,Op55f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 55f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5608 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5610 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5618 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5620 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5628 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5630 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5638 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5640 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5648 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5650 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5658 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5660 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5668 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5670 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5678 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5680 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5688 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5690 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5698 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 56a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 56a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 56b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 56b8 - .long Op56c0,Op56c0,Op56c0,Op56c0,Op56c0,Op56c0,Op56c0,Op56c0 ;@ 56c0 - .long Op56c8,Op56c8,Op56c8,Op56c8,Op56c8,Op56c8,Op56c8,Op56c8 ;@ 56c8 - .long Op56d0,Op56d0,Op56d0,Op56d0,Op56d0,Op56d0,Op56d0,Op56d0 ;@ 56d0 - .long Op56d8,Op56d8,Op56d8,Op56d8,Op56d8,Op56d8,Op56d8,Op56df ;@ 56d8 - .long Op56e0,Op56e0,Op56e0,Op56e0,Op56e0,Op56e0,Op56e0,Op56e7 ;@ 56e0 - .long Op56e8,Op56e8,Op56e8,Op56e8,Op56e8,Op56e8,Op56e8,Op56e8 ;@ 56e8 - .long Op56f0,Op56f0,Op56f0,Op56f0,Op56f0,Op56f0,Op56f0,Op56f0 ;@ 56f0 - .long Op56f8,Op56f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 56f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5708 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5710 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5718 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5720 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5728 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5730 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5738 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5740 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5748 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5750 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5758 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5760 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5768 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5770 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5778 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5780 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5788 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5790 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5798 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 57a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 57a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 57b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 57b8 - .long Op57c0,Op57c0,Op57c0,Op57c0,Op57c0,Op57c0,Op57c0,Op57c0 ;@ 57c0 - .long Op57c8,Op57c8,Op57c8,Op57c8,Op57c8,Op57c8,Op57c8,Op57c8 ;@ 57c8 - .long Op57d0,Op57d0,Op57d0,Op57d0,Op57d0,Op57d0,Op57d0,Op57d0 ;@ 57d0 - .long Op57d8,Op57d8,Op57d8,Op57d8,Op57d8,Op57d8,Op57d8,Op57df ;@ 57d8 - .long Op57e0,Op57e0,Op57e0,Op57e0,Op57e0,Op57e0,Op57e0,Op57e7 ;@ 57e0 - .long Op57e8,Op57e8,Op57e8,Op57e8,Op57e8,Op57e8,Op57e8,Op57e8 ;@ 57e8 - .long Op57f0,Op57f0,Op57f0,Op57f0,Op57f0,Op57f0,Op57f0,Op57f0 ;@ 57f0 - .long Op57f8,Op57f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 57f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5808 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5810 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5818 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5820 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5828 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5830 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5838 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5840 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5848 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5850 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5858 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5860 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5868 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5870 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5878 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5880 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5888 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5890 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5898 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 58a0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 58a8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 58b0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 58b8 - .long Op58c0,Op58c0,Op58c0,Op58c0,Op58c0,Op58c0,Op58c0,Op58c0 ;@ 58c0 - .long Op58c8,Op58c8,Op58c8,Op58c8,Op58c8,Op58c8,Op58c8,Op58c8 ;@ 58c8 - .long Op58d0,Op58d0,Op58d0,Op58d0,Op58d0,Op58d0,Op58d0,Op58d0 ;@ 58d0 - .long Op58d8,Op58d8,Op58d8,Op58d8,Op58d8,Op58d8,Op58d8,Op58df ;@ 58d8 - .long Op58e0,Op58e0,Op58e0,Op58e0,Op58e0,Op58e0,Op58e0,Op58e7 ;@ 58e0 - .long Op58e8,Op58e8,Op58e8,Op58e8,Op58e8,Op58e8,Op58e8,Op58e8 ;@ 58e8 - .long Op58f0,Op58f0,Op58f0,Op58f0,Op58f0,Op58f0,Op58f0,Op58f0 ;@ 58f0 - .long Op58f8,Op58f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 58f8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5908 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5910 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5918 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5920 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5928 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5930 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5938 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5940 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5948 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5950 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5958 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5960 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5968 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5970 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5978 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5980 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5988 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5990 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5998 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 59a0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 59a8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 59b0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 59b8 - .long Op59c0,Op59c0,Op59c0,Op59c0,Op59c0,Op59c0,Op59c0,Op59c0 ;@ 59c0 - .long Op59c8,Op59c8,Op59c8,Op59c8,Op59c8,Op59c8,Op59c8,Op59c8 ;@ 59c8 - .long Op59d0,Op59d0,Op59d0,Op59d0,Op59d0,Op59d0,Op59d0,Op59d0 ;@ 59d0 - .long Op59d8,Op59d8,Op59d8,Op59d8,Op59d8,Op59d8,Op59d8,Op59df ;@ 59d8 - .long Op59e0,Op59e0,Op59e0,Op59e0,Op59e0,Op59e0,Op59e0,Op59e7 ;@ 59e0 - .long Op59e8,Op59e8,Op59e8,Op59e8,Op59e8,Op59e8,Op59e8,Op59e8 ;@ 59e8 - .long Op59f0,Op59f0,Op59f0,Op59f0,Op59f0,Op59f0,Op59f0,Op59f0 ;@ 59f0 - .long Op59f8,Op59f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 59f8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5a08 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5a10 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5a18 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5a20 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5a28 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5a30 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5a38 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5a40 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5a48 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5a50 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5a58 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5a60 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5a68 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5a70 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5a78 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5a80 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5a88 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5a90 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5a98 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 5aa0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 5aa8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 5ab0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5ab8 - .long Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0,Op5ac0 ;@ 5ac0 - .long Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8,Op5ac8 ;@ 5ac8 - .long Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0,Op5ad0 ;@ 5ad0 - .long Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5ad8,Op5adf ;@ 5ad8 - .long Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae0,Op5ae7 ;@ 5ae0 - .long Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8,Op5ae8 ;@ 5ae8 - .long Op5af0,Op5af0,Op5af0,Op5af0,Op5af0,Op5af0,Op5af0,Op5af0 ;@ 5af0 - .long Op5af8,Op5af9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5af8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5b08 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5b10 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5b18 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5b20 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5b28 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5b30 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5b38 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5b40 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5b48 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5b50 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5b58 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5b60 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5b68 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5b70 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5b78 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5b80 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5b88 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5b90 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5b98 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 5ba0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 5ba8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 5bb0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5bb8 - .long Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0,Op5bc0 ;@ 5bc0 - .long Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8,Op5bc8 ;@ 5bc8 - .long Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0,Op5bd0 ;@ 5bd0 - .long Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bd8,Op5bdf ;@ 5bd8 - .long Op5be0,Op5be0,Op5be0,Op5be0,Op5be0,Op5be0,Op5be0,Op5be7 ;@ 5be0 - .long Op5be8,Op5be8,Op5be8,Op5be8,Op5be8,Op5be8,Op5be8,Op5be8 ;@ 5be8 - .long Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0,Op5bf0 ;@ 5bf0 - .long Op5bf8,Op5bf9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5bf8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5c08 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5c10 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5c18 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5c20 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5c28 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5c30 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5c38 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5c40 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5c48 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5c50 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5c58 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5c60 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5c68 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5c70 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5c78 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5c80 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5c88 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5c90 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5c98 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 5ca0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 5ca8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 5cb0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5cb8 - .long Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0,Op5cc0 ;@ 5cc0 - .long Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8,Op5cc8 ;@ 5cc8 - .long Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0,Op5cd0 ;@ 5cd0 - .long Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cd8,Op5cdf ;@ 5cd8 - .long Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce0,Op5ce7 ;@ 5ce0 - .long Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8,Op5ce8 ;@ 5ce8 - .long Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0,Op5cf0 ;@ 5cf0 - .long Op5cf8,Op5cf9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5cf8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5d08 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5d10 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5d18 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5d20 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5d28 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5d30 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5d38 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5d40 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5d48 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5d50 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5d58 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5d60 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5d68 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5d70 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5d78 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5d80 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5d88 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5d90 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5d98 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 5da0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 5da8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 5db0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5db8 - .long Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0,Op5dc0 ;@ 5dc0 - .long Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8,Op5dc8 ;@ 5dc8 - .long Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0,Op5dd0 ;@ 5dd0 - .long Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5dd8,Op5ddf ;@ 5dd8 - .long Op5de0,Op5de0,Op5de0,Op5de0,Op5de0,Op5de0,Op5de0,Op5de7 ;@ 5de0 - .long Op5de8,Op5de8,Op5de8,Op5de8,Op5de8,Op5de8,Op5de8,Op5de8 ;@ 5de8 - .long Op5df0,Op5df0,Op5df0,Op5df0,Op5df0,Op5df0,Op5df0,Op5df0 ;@ 5df0 - .long Op5df8,Op5df9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5df8 - .long Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00,Op5e00 ;@ 5e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5e08 - .long Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10,Op5e10 ;@ 5e10 - .long Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e18,Op5e1f ;@ 5e18 - .long Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e20,Op5e27 ;@ 5e20 - .long Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28,Op5e28 ;@ 5e28 - .long Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30,Op5e30 ;@ 5e30 - .long Op5e38,Op5e39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5e38 - .long Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40,Op5e40 ;@ 5e40 - .long Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48,Op5e48 ;@ 5e48 - .long Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50,Op5e50 ;@ 5e50 - .long Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58,Op5e58 ;@ 5e58 - .long Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60,Op5e60 ;@ 5e60 - .long Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68,Op5e68 ;@ 5e68 - .long Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70,Op5e70 ;@ 5e70 - .long Op5e78,Op5e79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5e78 - .long Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80,Op5e80 ;@ 5e80 - .long Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88,Op5e88 ;@ 5e88 - .long Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90,Op5e90 ;@ 5e90 - .long Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98,Op5e98 ;@ 5e98 - .long Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0,Op5ea0 ;@ 5ea0 - .long Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8,Op5ea8 ;@ 5ea8 - .long Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0,Op5eb0 ;@ 5eb0 - .long Op5eb8,Op5eb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5eb8 - .long Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0,Op5ec0 ;@ 5ec0 - .long Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8,Op5ec8 ;@ 5ec8 - .long Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0,Op5ed0 ;@ 5ed0 - .long Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5ed8,Op5edf ;@ 5ed8 - .long Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee0,Op5ee7 ;@ 5ee0 - .long Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8,Op5ee8 ;@ 5ee8 - .long Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0,Op5ef0 ;@ 5ef0 - .long Op5ef8,Op5ef9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5ef8 - .long Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00,Op5f00 ;@ 5f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5f08 - .long Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10,Op5f10 ;@ 5f10 - .long Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f18,Op5f1f ;@ 5f18 - .long Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f20,Op5f27 ;@ 5f20 - .long Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28,Op5f28 ;@ 5f28 - .long Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30,Op5f30 ;@ 5f30 - .long Op5f38,Op5f39,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5f38 - .long Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40,Op5f40 ;@ 5f40 - .long Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48,Op5f48 ;@ 5f48 - .long Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50,Op5f50 ;@ 5f50 - .long Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58,Op5f58 ;@ 5f58 - .long Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60,Op5f60 ;@ 5f60 - .long Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68,Op5f68 ;@ 5f68 - .long Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70,Op5f70 ;@ 5f70 - .long Op5f78,Op5f79,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5f78 - .long Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80,Op5f80 ;@ 5f80 - .long Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88,Op5f88 ;@ 5f88 - .long Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90,Op5f90 ;@ 5f90 - .long Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98,Op5f98 ;@ 5f98 - .long Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0,Op5fa0 ;@ 5fa0 - .long Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8,Op5fa8 ;@ 5fa8 - .long Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0,Op5fb0 ;@ 5fb0 - .long Op5fb8,Op5fb9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5fb8 - .long Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0,Op5fc0 ;@ 5fc0 - .long Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8,Op5fc8 ;@ 5fc8 - .long Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0,Op5fd0 ;@ 5fd0 - .long Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fd8,Op5fdf ;@ 5fd8 - .long Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe0,Op5fe7 ;@ 5fe0 - .long Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8,Op5fe8 ;@ 5fe8 - .long Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0,Op5ff0 ;@ 5ff0 - .long Op5ff8,Op5ff9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 5ff8 - .long Op6000,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6000 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6008 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6010 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6018 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6020 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6028 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6030 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6038 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6040 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6048 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6050 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6058 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6060 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6068 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6070 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6078 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6080 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6088 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6090 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 6098 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60a0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60a8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60b0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60b8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60c0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60c8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60d0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60d8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60e0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60e8 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60f0 - .long Op6002,Op6003,Op6002,Op6003,Op6002,Op6003,Op6002,Op6003 ;@ 60f8 - .long Op6100,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6100 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6108 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6110 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6118 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6120 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6128 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6130 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6138 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6140 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6148 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6150 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6158 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6160 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6168 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6170 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6178 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6180 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6188 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6190 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 6198 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61a0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61a8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61b0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61b8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61c0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61c8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61d0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61d8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61e0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61e8 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61f0 - .long Op6102,Op6103,Op6102,Op6103,Op6102,Op6103,Op6102,Op6103 ;@ 61f8 - .long Op6200,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6200 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6208 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6210 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6218 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6220 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6228 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6230 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6238 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6240 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6248 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6250 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6258 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6260 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6268 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6270 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6278 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6280 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6288 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6290 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 6298 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62a0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62a8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62b0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62b8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62c0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62c8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62d0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62d8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62e0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62e8 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62f0 - .long Op6202,Op6203,Op6202,Op6203,Op6202,Op6203,Op6202,Op6203 ;@ 62f8 - .long Op6300,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6300 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6308 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6310 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6318 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6320 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6328 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6330 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6338 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6340 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6348 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6350 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6358 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6360 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6368 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6370 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6378 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6380 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6388 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6390 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 6398 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63a0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63a8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63b0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63b8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63c0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63c8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63d0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63d8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63e0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63e8 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63f0 - .long Op6302,Op6303,Op6302,Op6303,Op6302,Op6303,Op6302,Op6303 ;@ 63f8 - .long Op6400,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6400 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6408 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6410 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6418 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6420 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6428 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6430 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6438 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6440 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6448 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6450 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6458 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6460 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6468 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6470 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6478 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6480 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6488 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6490 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 6498 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64a0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64a8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64b0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64b8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64c0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64c8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64d0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64d8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64e0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64e8 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64f0 - .long Op6402,Op6403,Op6402,Op6403,Op6402,Op6403,Op6402,Op6403 ;@ 64f8 - .long Op6500,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6500 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6508 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6510 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6518 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6520 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6528 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6530 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6538 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6540 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6548 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6550 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6558 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6560 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6568 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6570 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6578 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6580 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6588 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6590 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 6598 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65a0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65a8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65b0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65b8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65c0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65c8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65d0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65d8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65e0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65e8 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65f0 - .long Op6502,Op6503,Op6502,Op6503,Op6502,Op6503,Op6502,Op6503 ;@ 65f8 - .long Op6600,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6600 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6608 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6610 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6618 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6620 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6628 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6630 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6638 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6640 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6648 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6650 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6658 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6660 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6668 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6670 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6678 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6680 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6688 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6690 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 6698 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66a0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66a8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66b0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66b8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66c0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66c8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66d0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66d8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66e0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66e8 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66f0 - .long Op6602,Op6603,Op6602,Op6603,Op6602,Op6603,Op6602,Op6603 ;@ 66f8 - .long Op6700,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6700 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6708 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6710 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6718 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6720 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6728 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6730 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6738 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6740 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6748 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6750 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6758 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6760 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6768 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6770 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6778 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6780 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6788 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6790 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 6798 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67a0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67a8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67b0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67b8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67c0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67c8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67d0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67d8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67e0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67e8 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67f0 - .long Op6702,Op6703,Op6702,Op6703,Op6702,Op6703,Op6702,Op6703 ;@ 67f8 - .long Op6800,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6800 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6808 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6810 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6818 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6820 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6828 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6830 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6838 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6840 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6848 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6850 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6858 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6860 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6868 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6870 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6878 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6880 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6888 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6890 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 6898 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68a0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68a8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68b0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68b8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68c0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68c8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68d0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68d8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68e0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68e8 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68f0 - .long Op6802,Op6803,Op6802,Op6803,Op6802,Op6803,Op6802,Op6803 ;@ 68f8 - .long Op6900,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6900 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6908 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6910 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6918 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6920 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6928 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6930 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6938 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6940 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6948 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6950 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6958 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6960 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6968 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6970 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6978 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6980 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6988 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6990 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 6998 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69a0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69a8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69b0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69b8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69c0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69c8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69d0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69d8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69e0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69e8 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69f0 - .long Op6902,Op6903,Op6902,Op6903,Op6902,Op6903,Op6902,Op6903 ;@ 69f8 - .long Op6a00,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a00 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a08 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a10 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a18 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a20 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a28 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a30 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a38 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a40 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a48 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a50 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a58 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a60 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a68 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a70 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a78 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a80 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a88 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a90 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6a98 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6aa0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6aa8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ab0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ab8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ac0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ac8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ad0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ad8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ae0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6ae8 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6af0 - .long Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03,Op6a02,Op6a03 ;@ 6af8 - .long Op6b00,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b00 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b08 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b10 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b18 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b20 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b28 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b30 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b38 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b40 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b48 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b50 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b58 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b60 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b68 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b70 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b78 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b80 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b88 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b90 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6b98 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6ba0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6ba8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bb0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bb8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bc0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bc8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bd0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bd8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6be0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6be8 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bf0 - .long Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03,Op6b02,Op6b03 ;@ 6bf8 - .long Op6c00,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c00 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c08 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c10 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c18 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c20 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c28 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c30 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c38 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c40 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c48 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c50 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c58 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c60 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c68 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c70 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c78 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c80 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c88 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c90 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6c98 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ca0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ca8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cb0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cb8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cc0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cc8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cd0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cd8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ce0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6ce8 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cf0 - .long Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03,Op6c02,Op6c03 ;@ 6cf8 - .long Op6d00,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d00 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d08 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d10 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d18 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d20 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d28 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d30 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d38 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d40 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d48 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d50 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d58 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d60 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d68 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d70 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d78 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d80 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d88 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d90 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6d98 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6da0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6da8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6db0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6db8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dc0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dc8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dd0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6dd8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6de0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6de8 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6df0 - .long Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03,Op6d02,Op6d03 ;@ 6df8 - .long Op6e00,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e00 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e08 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e10 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e18 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e20 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e28 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e30 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e38 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e40 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e48 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e50 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e58 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e60 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e68 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e70 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e78 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e80 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e88 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e90 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6e98 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ea0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ea8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6eb0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6eb8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ec0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ec8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ed0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ed8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ee0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ee8 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ef0 - .long Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03,Op6e02,Op6e03 ;@ 6ef8 - .long Op6f00,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f00 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f08 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f10 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f18 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f20 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f28 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f30 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f38 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f40 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f48 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f50 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f58 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f60 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f68 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f70 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f78 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f80 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f88 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f90 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6f98 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fa0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fa8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fb0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fb8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fc0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fc8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fd0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fd8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fe0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6fe8 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6ff0 - .long Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03,Op6f02,Op6f03 ;@ 6ff8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7000 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7008 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7010 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7018 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7020 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7028 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7030 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7038 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7040 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7048 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7050 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7058 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7060 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7068 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7070 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7078 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7080 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7088 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7090 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7098 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 70f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7100 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7108 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7110 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7118 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7120 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7128 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7130 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7138 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7148 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7150 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7158 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7160 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7168 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7170 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7178 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7188 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7190 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7198 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 71f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7200 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7208 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7210 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7218 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7220 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7228 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7230 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7238 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7240 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7248 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7250 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7258 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7260 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7268 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7270 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7278 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7280 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7288 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7290 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7298 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 72f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7300 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7308 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7310 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7318 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7320 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7328 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7330 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7338 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7348 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7350 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7358 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7360 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7368 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7370 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7378 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7388 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7390 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7398 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 73f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7400 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7408 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7410 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7418 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7420 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7428 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7430 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7438 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7440 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7448 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7450 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7458 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7460 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7468 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7470 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7478 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7480 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7488 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7490 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7498 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 74f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7500 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7508 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7510 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7518 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7520 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7528 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7530 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7538 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7548 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7550 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7558 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7560 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7568 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7570 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7578 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7588 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7590 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7598 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 75f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7600 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7608 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7610 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7618 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7620 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7628 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7630 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7638 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7640 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7648 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7650 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7658 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7660 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7668 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7670 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7678 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7680 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7688 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7690 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7698 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 76f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7700 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7708 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7710 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7718 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7720 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7728 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7730 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7738 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7748 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7750 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7758 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7760 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7768 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7770 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7778 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7788 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7790 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7798 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 77f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7800 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7808 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7810 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7818 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7820 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7828 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7830 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7838 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7840 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7848 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7850 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7858 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7860 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7868 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7870 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7878 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7880 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7888 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7890 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7898 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78a0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78a8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78b0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78b8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78c0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78c8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78d0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78d8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78e0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78e8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78f0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 78f8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7900 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7908 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7910 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7918 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7920 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7928 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7930 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7938 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7948 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7950 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7958 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7960 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7968 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7970 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7978 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7988 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7990 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7998 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79a0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79a8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79b0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 79f8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a00 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a08 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a10 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a18 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a20 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a28 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a30 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a38 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a40 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a48 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a50 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a58 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a60 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a68 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a70 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a78 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a80 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a88 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a90 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7a98 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7aa0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7aa8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ab0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ab8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ac0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ac8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ad0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ad8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ae0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ae8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7af0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7af8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7b98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ba0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ba8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bb0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7be0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7be8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7bf8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c00 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c08 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c10 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c18 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c20 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c28 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c30 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c38 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c40 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c48 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c50 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c58 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c60 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c68 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c70 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c78 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c80 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c88 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c90 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7c98 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ca0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ca8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cb0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cb8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cc0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cc8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cd0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cd8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ce0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ce8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cf0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7cf8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7d98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7da0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7da8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7db0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7db8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7dd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7de0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7de8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7df0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7df8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e00 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e08 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e10 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e18 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e20 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e28 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e30 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e38 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e40 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e48 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e50 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e58 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e60 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e68 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e70 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e78 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e80 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e88 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e90 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7e98 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ea0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ea8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7eb0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7eb8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ec0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ec8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ed0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ed8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ee0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ee8 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ef0 - .long Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000,Op7000 ;@ 7ef8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f08 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f10 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f18 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f20 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f28 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f30 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f48 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f50 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f58 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f60 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f68 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f70 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f88 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f90 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7f98 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fa0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fa8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fb0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7fe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 7ff8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8008 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8010 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8018 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8020 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8028 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8030 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8038 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8048 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8050 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8058 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8060 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8068 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8070 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8078 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8088 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8090 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8098 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 80a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 80a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 80b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 80b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 80c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 80c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 80d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 80d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 80e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 80e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 80f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 80f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8100 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8108 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8110 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8118 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8120 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8128 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8130 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8138 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8140 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8148 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8150 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8158 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8160 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8168 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8170 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8178 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8180 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8188 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8190 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8198 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 81a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 81a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 81b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 81b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 81c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 81c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 81d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 81d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 81e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 81e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 81f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 81f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8208 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8210 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8218 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8220 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8228 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8230 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8238 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8248 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8250 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8258 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8260 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8268 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8270 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8278 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8288 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8290 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8298 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 82a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 82a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 82b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 82b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 82c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 82c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 82d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 82d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 82e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 82e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 82f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 82f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8300 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8308 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8310 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8318 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8320 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8328 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8330 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8338 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8340 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8348 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8350 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8358 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8360 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8368 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8370 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8378 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8380 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8388 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8390 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8398 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 83a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 83a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 83b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 83b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 83c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 83c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 83d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 83d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 83e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 83e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 83f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 83f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8408 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8410 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8418 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8420 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8428 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8430 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8438 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8448 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8450 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8458 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8460 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8468 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8470 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8478 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8488 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8490 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8498 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 84a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 84a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 84b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 84b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 84c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 84c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 84d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 84d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 84e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 84e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 84f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 84f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8500 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8508 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8510 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8518 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8520 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8528 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8530 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8538 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8540 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8548 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8550 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8558 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8560 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8568 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8570 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8578 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8580 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8588 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8590 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8598 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 85a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 85a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 85b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 85b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 85c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 85c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 85d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 85d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 85e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 85e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 85f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 85f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8608 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8610 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8618 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8620 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8628 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8630 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8638 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8648 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8650 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8658 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8660 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8668 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8670 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8678 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8688 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8690 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8698 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 86a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 86a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 86b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 86b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 86c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 86c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 86d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 86d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 86e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 86e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 86f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 86f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8700 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8708 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8710 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8718 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8720 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8728 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8730 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8738 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8740 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8748 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8750 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8758 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8760 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8768 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8770 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8778 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8780 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8788 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8790 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8798 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 87a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 87a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 87b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 87b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 87c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 87c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 87d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 87d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 87e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 87e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 87f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 87f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8808 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8810 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8818 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8820 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8828 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8830 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8838 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8848 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8850 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8858 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8860 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8868 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8870 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8878 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8888 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8890 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8898 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 88a0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 88a8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 88b0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 88b8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 88c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 88c8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 88d0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 88d8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 88e0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 88e8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 88f0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 88f8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8900 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8908 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8910 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8918 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8920 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8928 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8930 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8938 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8940 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8948 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8950 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8958 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8960 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8968 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8970 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8978 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8980 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8988 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8990 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8998 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 89a0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 89a8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 89b0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 89b8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 89c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 89c8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 89d0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 89d8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 89e0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 89e8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 89f0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 89f8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8a08 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8a10 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8a18 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8a20 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8a28 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8a30 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8a38 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8a40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8a48 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8a50 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8a58 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8a60 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8a68 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8a70 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8a78 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8a80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8a88 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8a90 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8a98 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 8aa0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 8aa8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 8ab0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 8ab8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 8ac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8ac8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 8ad0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 8ad8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 8ae0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 8ae8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 8af0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 8af8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8b00 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8b08 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8b10 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8b18 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8b20 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8b28 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8b30 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b48 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8b50 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8b58 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8b60 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8b68 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8b70 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8b88 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8b90 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8b98 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 8ba0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 8ba8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 8bb0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8bb8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 8bc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8bc8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 8bd0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 8bd8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 8be0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 8be8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 8bf0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 8bf8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8c08 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8c10 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8c18 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8c20 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8c28 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8c30 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8c38 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8c40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8c48 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8c50 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8c58 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8c60 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8c68 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8c70 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8c78 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8c80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8c88 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8c90 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8c98 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 8ca0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 8ca8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 8cb0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 8cb8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 8cc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8cc8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 8cd0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 8cd8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 8ce0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 8ce8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 8cf0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 8cf8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8d00 - .long Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op8108,Op810f ;@ 8d08 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8d10 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8d18 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8d20 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8d28 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8d30 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d48 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8d50 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8d58 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8d60 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8d68 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8d70 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8d88 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8d90 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8d98 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 8da0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 8da8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 8db0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8db8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 8dc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8dc8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 8dd0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 8dd8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 8de0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 8de8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 8df0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 8df8 - .long Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000,Op8000 ;@ 8e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8e08 - .long Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010,Op8010 ;@ 8e10 - .long Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op8018,Op801f ;@ 8e18 - .long Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8020,Op8027 ;@ 8e20 - .long Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028,Op8028 ;@ 8e28 - .long Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030,Op8030 ;@ 8e30 - .long Op8038,Op8039,Op803a,Op803b,Op803c,Op____,Op____,Op____ ;@ 8e38 - .long Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040,Op8040 ;@ 8e40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8e48 - .long Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050,Op8050 ;@ 8e50 - .long Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058,Op8058 ;@ 8e58 - .long Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060,Op8060 ;@ 8e60 - .long Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068,Op8068 ;@ 8e68 - .long Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070,Op8070 ;@ 8e70 - .long Op8078,Op8079,Op807a,Op807b,Op807c,Op____,Op____,Op____ ;@ 8e78 - .long Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080,Op8080 ;@ 8e80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8e88 - .long Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090,Op8090 ;@ 8e90 - .long Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098,Op8098 ;@ 8e98 - .long Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0,Op80a0 ;@ 8ea0 - .long Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8,Op80a8 ;@ 8ea8 - .long Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0,Op80b0 ;@ 8eb0 - .long Op80b8,Op80b9,Op80ba,Op80bb,Op80bc,Op____,Op____,Op____ ;@ 8eb8 - .long Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0,Op80c0 ;@ 8ec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8ec8 - .long Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0,Op80d0 ;@ 8ed0 - .long Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8,Op80d8 ;@ 8ed8 - .long Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0,Op80e0 ;@ 8ee0 - .long Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8,Op80e8 ;@ 8ee8 - .long Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0,Op80f0 ;@ 8ef0 - .long Op80f8,Op80f9,Op80fa,Op80fb,Op80fc,Op____,Op____,Op____ ;@ 8ef8 - .long Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100,Op8100 ;@ 8f00 - .long Op8f08,Op8f08,Op8f08,Op8f08,Op8f08,Op8f08,Op8f08,Op8f0f ;@ 8f08 - .long Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110,Op8110 ;@ 8f10 - .long Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op8118,Op811f ;@ 8f18 - .long Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8120,Op8127 ;@ 8f20 - .long Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128,Op8128 ;@ 8f28 - .long Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130,Op8130 ;@ 8f30 - .long Op8138,Op8139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f38 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f48 - .long Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150,Op8150 ;@ 8f50 - .long Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158,Op8158 ;@ 8f58 - .long Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160,Op8160 ;@ 8f60 - .long Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168,Op8168 ;@ 8f68 - .long Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170,Op8170 ;@ 8f70 - .long Op8178,Op8179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8f88 - .long Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190,Op8190 ;@ 8f90 - .long Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198,Op8198 ;@ 8f98 - .long Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0,Op81a0 ;@ 8fa0 - .long Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8,Op81a8 ;@ 8fa8 - .long Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0,Op81b0 ;@ 8fb0 - .long Op81b8,Op81b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8fb8 - .long Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0,Op81c0 ;@ 8fc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 8fc8 - .long Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0,Op81d0 ;@ 8fd0 - .long Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8,Op81d8 ;@ 8fd8 - .long Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0,Op81e0 ;@ 8fe0 - .long Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8,Op81e8 ;@ 8fe8 - .long Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0,Op81f0 ;@ 8ff0 - .long Op81f8,Op81f9,Op81fa,Op81fb,Op81fc,Op____,Op____,Op____ ;@ 8ff8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9008 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9010 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9018 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9020 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9028 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9030 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9038 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9040 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9048 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9050 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9058 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9060 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9068 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9070 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9078 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9080 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9088 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9090 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9098 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 90a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 90a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 90b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 90b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 90c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 90c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 90d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 90d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 90e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 90e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 90f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 90f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9100 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9108 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9110 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9118 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9120 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9128 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9130 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9138 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9140 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9148 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9150 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9158 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9160 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9168 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9170 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9178 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9180 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9188 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9190 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9198 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 91a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 91a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 91b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 91b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 91c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 91c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 91d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 91d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 91e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 91e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 91f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 91f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9208 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9210 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9218 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9220 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9228 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9230 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9238 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9240 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9248 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9250 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9258 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9260 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9268 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9270 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9278 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9280 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9288 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9290 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9298 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 92a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 92a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 92b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 92b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 92c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 92c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 92d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 92d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 92e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 92e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 92f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 92f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9300 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9308 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9310 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9318 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9320 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9328 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9330 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9338 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9340 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9348 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9350 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9358 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9360 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9368 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9370 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9378 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9380 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9388 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9390 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9398 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 93a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 93a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 93b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 93b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 93c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 93c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 93d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 93d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 93e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 93e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 93f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 93f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9408 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9410 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9418 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9420 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9428 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9430 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9438 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9440 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9448 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9450 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9458 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9460 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9468 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9470 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9478 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9480 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9488 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9490 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9498 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 94a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 94a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 94b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 94b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 94c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 94c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 94d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 94d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 94e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 94e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 94f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 94f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9500 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9508 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9510 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9518 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9520 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9528 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9530 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9538 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9540 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9548 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9550 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9558 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9560 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9568 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9570 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9578 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9580 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9588 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9590 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9598 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 95a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 95a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 95b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 95b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 95c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 95c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 95d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 95d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 95e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 95e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 95f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 95f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9608 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9610 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9618 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9620 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9628 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9630 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9638 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9640 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9648 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9650 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9658 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9660 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9668 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9670 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9678 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9680 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9688 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9690 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9698 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 96a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 96a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 96b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 96b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 96c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 96c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 96d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 96d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 96e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 96e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 96f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 96f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9700 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9708 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9710 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9718 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9720 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9728 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9730 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9738 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9740 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9748 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9750 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9758 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9760 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9768 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9770 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9778 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9780 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9788 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9790 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9798 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 97a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 97a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 97b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 97b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 97c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 97c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 97d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 97d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 97e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 97e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 97f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 97f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9808 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9810 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9818 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9820 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9828 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9830 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9838 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9840 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9848 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9850 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9858 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9860 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9868 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9870 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9878 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9880 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9888 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9890 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9898 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 98a0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 98a8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 98b0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 98b8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 98c0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 98c8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 98d0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 98d8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 98e0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 98e8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 98f0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 98f8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9900 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9908 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9910 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9918 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9920 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9928 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9930 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9938 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9940 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9948 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9950 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9958 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9960 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9968 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9970 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9978 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9980 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9988 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9990 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9998 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 99a0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 99a8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 99b0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 99b8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 99c0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 99c8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 99d0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 99d8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 99e0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 99e8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 99f0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 99f8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9a00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9a08 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9a10 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9a18 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9a20 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9a28 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9a30 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9a38 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9a40 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9a48 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9a50 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9a58 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9a60 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9a68 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9a70 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9a78 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9a80 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9a88 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9a90 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9a98 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 9aa0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 9aa8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 9ab0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 9ab8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ac0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ac8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 9ad0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 9ad8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 9ae0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 9ae8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 9af0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 9af8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9b00 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9b08 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9b10 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9b18 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9b20 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9b28 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9b30 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9b38 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9b40 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9b48 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9b50 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9b58 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9b60 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9b68 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9b70 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9b78 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9b80 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9b88 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9b90 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9b98 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 9ba0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 9ba8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 9bb0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9bb8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9bc0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9bc8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 9bd0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 9bd8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 9be0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 9be8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 9bf0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 9bf8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9c00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9c08 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9c10 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9c18 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9c20 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9c28 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9c30 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9c38 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9c40 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9c48 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9c50 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9c58 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9c60 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9c68 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9c70 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9c78 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9c80 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9c88 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9c90 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9c98 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 9ca0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 9ca8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 9cb0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 9cb8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9cc0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9cc8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 9cd0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 9cd8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 9ce0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 9ce8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 9cf0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 9cf8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9d00 - .long Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op9108,Op910f ;@ 9d08 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9d10 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9d18 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9d20 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9d28 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9d30 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9d38 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9d40 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9d48 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9d50 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9d58 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9d60 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9d68 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9d70 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9d78 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9d80 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9d88 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9d90 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9d98 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 9da0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 9da8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 9db0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9db8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9dc0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9dc8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 9dd0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 9dd8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 9de0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 9de8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 9df0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 9df8 - .long Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000,Op9000 ;@ 9e00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9e08 - .long Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010,Op9010 ;@ 9e10 - .long Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op9018,Op901f ;@ 9e18 - .long Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9020,Op9027 ;@ 9e20 - .long Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028,Op9028 ;@ 9e28 - .long Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030,Op9030 ;@ 9e30 - .long Op9038,Op9039,Op903a,Op903b,Op903c,Op____,Op____,Op____ ;@ 9e38 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9e40 - .long Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040,Op9040 ;@ 9e48 - .long Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050,Op9050 ;@ 9e50 - .long Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058,Op9058 ;@ 9e58 - .long Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060,Op9060 ;@ 9e60 - .long Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068,Op9068 ;@ 9e68 - .long Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070,Op9070 ;@ 9e70 - .long Op9078,Op9079,Op907a,Op907b,Op907c,Op____,Op____,Op____ ;@ 9e78 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9e80 - .long Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080,Op9080 ;@ 9e88 - .long Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090,Op9090 ;@ 9e90 - .long Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098,Op9098 ;@ 9e98 - .long Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0,Op90a0 ;@ 9ea0 - .long Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8,Op90a8 ;@ 9ea8 - .long Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0,Op90b0 ;@ 9eb0 - .long Op90b8,Op90b9,Op90ba,Op90bb,Op90bc,Op____,Op____,Op____ ;@ 9eb8 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ec0 - .long Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0,Op90c0 ;@ 9ec8 - .long Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0,Op90d0 ;@ 9ed0 - .long Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8,Op90d8 ;@ 9ed8 - .long Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0,Op90e0 ;@ 9ee0 - .long Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8,Op90e8 ;@ 9ee8 - .long Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0,Op90f0 ;@ 9ef0 - .long Op90f8,Op90f9,Op90fa,Op90fb,Op90fc,Op____,Op____,Op____ ;@ 9ef8 - .long Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100,Op9100 ;@ 9f00 - .long Op9f08,Op9f08,Op9f08,Op9f08,Op9f08,Op9f08,Op9f08,Op9f0f ;@ 9f08 - .long Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110,Op9110 ;@ 9f10 - .long Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op9118,Op911f ;@ 9f18 - .long Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9120,Op9127 ;@ 9f20 - .long Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128,Op9128 ;@ 9f28 - .long Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130,Op9130 ;@ 9f30 - .long Op9138,Op9139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9f38 - .long Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140,Op9140 ;@ 9f40 - .long Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148,Op9148 ;@ 9f48 - .long Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150,Op9150 ;@ 9f50 - .long Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158,Op9158 ;@ 9f58 - .long Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160,Op9160 ;@ 9f60 - .long Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168,Op9168 ;@ 9f68 - .long Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170,Op9170 ;@ 9f70 - .long Op9178,Op9179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9f78 - .long Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180,Op9180 ;@ 9f80 - .long Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188,Op9188 ;@ 9f88 - .long Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190,Op9190 ;@ 9f90 - .long Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198,Op9198 ;@ 9f98 - .long Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0,Op91a0 ;@ 9fa0 - .long Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8,Op91a8 ;@ 9fa8 - .long Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0,Op91b0 ;@ 9fb0 - .long Op91b8,Op91b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ 9fb8 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9fc0 - .long Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0,Op91c0 ;@ 9fc8 - .long Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0,Op91d0 ;@ 9fd0 - .long Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8,Op91d8 ;@ 9fd8 - .long Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0,Op91e0 ;@ 9fe0 - .long Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8,Op91e8 ;@ 9fe8 - .long Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0,Op91f0 ;@ 9ff0 - .long Op91f8,Op91f9,Op91fa,Op91fb,Op91fc,Op____,Op____,Op____ ;@ 9ff8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a000 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a008 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a010 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a018 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a020 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a028 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a030 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a038 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a040 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a048 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a050 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a058 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a060 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a068 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a070 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a078 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a080 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a088 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a090 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a098 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a0f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a100 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a108 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a110 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a118 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a120 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a128 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a130 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a138 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a140 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a148 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a150 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a158 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a160 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a168 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a170 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a178 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a180 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a188 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a190 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a198 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a1f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a200 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a208 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a210 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a218 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a220 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a228 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a230 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a238 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a240 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a248 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a250 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a258 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a260 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a268 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a270 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a278 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a280 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a288 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a290 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a298 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a2f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a300 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a308 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a310 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a318 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a320 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a328 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a330 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a338 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a340 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a348 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a350 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a358 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a360 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a368 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a370 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a378 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a380 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a388 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a390 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a398 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a3f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a400 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a408 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a410 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a418 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a420 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a428 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a430 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a438 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a440 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a448 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a450 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a458 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a460 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a468 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a470 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a478 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a480 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a488 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a490 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a498 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a4f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a500 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a508 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a510 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a518 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a520 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a528 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a530 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a538 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a540 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a548 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a550 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a558 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a560 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a568 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a570 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a578 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a580 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a588 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a590 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a598 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a5f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a600 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a608 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a610 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a618 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a620 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a628 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a630 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a638 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a640 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a648 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a650 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a658 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a660 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a668 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a670 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a678 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a680 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a688 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a690 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a698 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a6f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a700 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a708 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a710 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a718 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a720 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a728 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a730 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a738 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a740 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a748 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a750 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a758 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a760 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a768 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a770 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a778 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a780 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a788 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a790 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a798 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a7f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a800 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a808 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a810 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a818 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a820 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a828 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a830 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a838 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a840 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a848 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a850 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a858 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a860 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a868 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a870 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a878 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a880 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a888 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a890 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a898 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a8f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a900 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a908 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a910 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a918 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a920 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a928 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a930 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a938 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a940 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a948 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a950 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a958 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a960 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a968 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a970 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a978 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a980 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a988 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a990 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a998 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9a0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9a8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9b0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9b8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9c0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9c8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9d0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9d8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9e0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9e8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9f0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ a9f8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aa98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaa0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaa8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aab0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aab8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aac0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aac8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aad0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aad8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aae0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aae8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aaf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ab98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aba0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aba8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abd0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abd8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abe0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abe8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ abf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ac98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aca0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aca8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acd0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acd8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ace0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ace8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ acf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ad98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ada0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ada8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ add0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ add8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ade0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ade8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adf0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ adf8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ ae98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aea0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aea8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aeb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aeb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aec0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aec8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aed0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aed8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aee0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aee8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aef0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aef8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af00 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af08 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af10 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af18 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af20 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af28 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af30 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af38 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af40 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af48 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af50 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af58 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af60 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af68 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af70 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af78 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af80 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af88 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af90 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ af98 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afa0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afa8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afb0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afb8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afc0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afc8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afd0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afd8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afe0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ afe8 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aff0 - .long Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al,Op__al ;@ aff8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b008 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b010 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b018 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b020 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b028 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b030 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b038 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b040 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b048 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b050 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b058 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b060 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b068 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b070 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b078 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b080 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b088 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b090 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b098 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b0a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b0a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b0b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b0b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b0c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b0c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b0d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b0d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b0e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b0e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b0f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b0f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b100 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b108 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b110 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b118 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b120 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b128 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b130 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b138 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b140 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b148 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b150 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b158 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b160 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b168 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b170 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b178 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b180 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b188 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b190 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b198 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b1a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b1a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b1b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b1b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b1c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b1c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b1d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b1d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b1e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b1e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b1f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b1f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b208 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b210 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b218 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b220 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b228 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b230 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b238 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b240 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b248 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b250 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b258 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b260 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b268 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b270 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b278 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b280 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b288 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b290 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b298 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b2a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b2a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b2b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b2b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b2c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b2c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b2d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b2d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b2e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b2e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b2f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b2f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b300 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b308 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b310 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b318 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b320 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b328 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b330 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b338 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b340 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b348 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b350 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b358 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b360 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b368 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b370 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b378 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b380 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b388 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b390 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b398 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b3a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b3a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b3b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b3b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b3c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b3c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b3d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b3d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b3e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b3e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b3f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b3f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b408 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b410 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b418 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b420 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b428 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b430 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b438 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b440 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b448 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b450 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b458 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b460 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b468 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b470 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b478 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b480 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b488 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b490 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b498 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b4a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b4a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b4b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b4b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b4c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b4c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b4d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b4d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b4e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b4e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b4f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b4f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b500 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b508 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b510 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b518 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b520 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b528 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b530 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b538 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b540 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b548 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b550 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b558 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b560 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b568 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b570 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b578 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b580 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b588 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b590 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b598 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b5a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b5a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b5b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b5b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b5c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b5c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b5d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b5d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b5e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b5e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b5f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b5f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b608 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b610 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b618 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b620 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b628 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b630 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b638 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b640 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b648 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b650 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b658 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b660 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b668 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b670 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b678 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b680 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b688 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b690 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b698 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b6a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b6a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b6b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b6b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b6c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b6c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b6d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b6d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b6e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b6e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b6f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b6f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b700 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b708 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b710 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b718 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b720 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b728 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b730 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b738 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b740 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b748 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b750 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b758 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b760 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b768 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b770 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b778 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b780 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b788 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b790 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b798 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b7a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b7a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b7b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b7b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b7c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b7c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b7d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b7d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b7e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b7e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b7f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b7f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ b800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b808 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ b810 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ b818 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ b820 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ b828 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ b830 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ b838 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b840 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ b848 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ b850 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ b858 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ b860 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ b868 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ b870 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ b878 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b880 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ b888 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ b890 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ b898 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ b8a0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ b8a8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ b8b0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ b8b8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b8c0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ b8c8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ b8d0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ b8d8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ b8e0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ b8e8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ b8f0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ b8f8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ b900 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ b908 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ b910 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ b918 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ b920 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ b928 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ b930 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b938 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ b940 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ b948 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ b950 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ b958 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ b960 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ b968 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ b970 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b978 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ b980 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ b988 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ b990 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ b998 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ b9a0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ b9a8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ b9b0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ b9b8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b9c0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ b9c8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ b9d0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ b9d8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ b9e0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ b9e8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ b9f0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ b9f8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ ba00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ba08 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ ba10 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ ba18 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ ba20 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ ba28 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ ba30 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ ba38 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ ba40 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ ba48 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ ba50 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ ba58 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ ba60 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ ba68 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ ba70 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ ba78 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ ba80 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ ba88 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ ba90 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ ba98 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ baa0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ baa8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ bab0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ bab8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bac0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bac8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ bad0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ bad8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ bae0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ bae8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ baf0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ baf8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ bb00 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ bb08 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ bb10 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ bb18 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ bb20 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ bb28 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ bb30 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bb38 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ bb40 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ bb48 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ bb50 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ bb58 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ bb60 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ bb68 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ bb70 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bb78 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ bb80 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ bb88 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ bb90 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ bb98 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ bba0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ bba8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ bbb0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bbb8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bbc0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bbc8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ bbd0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ bbd8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ bbe0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ bbe8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ bbf0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ bbf8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ bc00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bc08 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ bc10 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ bc18 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ bc20 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ bc28 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ bc30 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ bc38 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ bc40 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ bc48 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ bc50 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ bc58 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ bc60 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ bc68 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ bc70 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ bc78 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ bc80 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ bc88 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ bc90 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ bc98 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ bca0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ bca8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ bcb0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ bcb8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bcc0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bcc8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ bcd0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ bcd8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ bce0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ bce8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ bcf0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ bcf8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ bd00 - .long Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb108,Opb10f ;@ bd08 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ bd10 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ bd18 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ bd20 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ bd28 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ bd30 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bd38 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ bd40 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ bd48 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ bd50 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ bd58 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ bd60 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ bd68 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ bd70 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bd78 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ bd80 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ bd88 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ bd90 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ bd98 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ bda0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ bda8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ bdb0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bdb8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bdc0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bdc8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ bdd0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ bdd8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ bde0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ bde8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ bdf0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ bdf8 - .long Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000,Opb000 ;@ be00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ be08 - .long Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010,Opb010 ;@ be10 - .long Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb018,Opb01f ;@ be18 - .long Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb020,Opb027 ;@ be20 - .long Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028,Opb028 ;@ be28 - .long Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030,Opb030 ;@ be30 - .long Opb038,Opb039,Opb03a,Opb03b,Opb03c,Op____,Op____,Op____ ;@ be38 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ be40 - .long Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040,Opb040 ;@ be48 - .long Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050,Opb050 ;@ be50 - .long Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058,Opb058 ;@ be58 - .long Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060,Opb060 ;@ be60 - .long Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068,Opb068 ;@ be68 - .long Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070,Opb070 ;@ be70 - .long Opb078,Opb079,Opb07a,Opb07b,Opb07c,Op____,Op____,Op____ ;@ be78 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ be80 - .long Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080,Opb080 ;@ be88 - .long Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090,Opb090 ;@ be90 - .long Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098,Opb098 ;@ be98 - .long Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0,Opb0a0 ;@ bea0 - .long Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8,Opb0a8 ;@ bea8 - .long Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0,Opb0b0 ;@ beb0 - .long Opb0b8,Opb0b9,Opb0ba,Opb0bb,Opb0bc,Op____,Op____,Op____ ;@ beb8 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bec0 - .long Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0,Opb0c0 ;@ bec8 - .long Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0,Opb0d0 ;@ bed0 - .long Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8,Opb0d8 ;@ bed8 - .long Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0,Opb0e0 ;@ bee0 - .long Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8,Opb0e8 ;@ bee8 - .long Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0,Opb0f0 ;@ bef0 - .long Opb0f8,Opb0f9,Opb0fa,Opb0fb,Opb0fc,Op____,Op____,Op____ ;@ bef8 - .long Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100,Opb100 ;@ bf00 - .long Opbf08,Opbf08,Opbf08,Opbf08,Opbf08,Opbf08,Opbf08,Opbf0f ;@ bf08 - .long Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110,Opb110 ;@ bf10 - .long Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb118,Opb11f ;@ bf18 - .long Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb120,Opb127 ;@ bf20 - .long Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128,Opb128 ;@ bf28 - .long Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130,Opb130 ;@ bf30 - .long Opb138,Opb139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bf38 - .long Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140,Opb140 ;@ bf40 - .long Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148,Opb148 ;@ bf48 - .long Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150,Opb150 ;@ bf50 - .long Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158,Opb158 ;@ bf58 - .long Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160,Opb160 ;@ bf60 - .long Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168,Opb168 ;@ bf68 - .long Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170,Opb170 ;@ bf70 - .long Opb178,Opb179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bf78 - .long Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180,Opb180 ;@ bf80 - .long Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188,Opb188 ;@ bf88 - .long Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190,Opb190 ;@ bf90 - .long Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198,Opb198 ;@ bf98 - .long Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0,Opb1a0 ;@ bfa0 - .long Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8,Opb1a8 ;@ bfa8 - .long Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0,Opb1b0 ;@ bfb0 - .long Opb1b8,Opb1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ bfb8 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bfc0 - .long Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0,Opb1c0 ;@ bfc8 - .long Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0,Opb1d0 ;@ bfd0 - .long Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8,Opb1d8 ;@ bfd8 - .long Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0,Opb1e0 ;@ bfe0 - .long Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8,Opb1e8 ;@ bfe8 - .long Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0,Opb1f0 ;@ bff0 - .long Opb1f8,Opb1f9,Opb1fa,Opb1fb,Opb1fc,Op____,Op____,Op____ ;@ bff8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c008 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c010 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c018 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c020 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c028 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c030 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c038 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c040 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c048 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c050 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c058 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c060 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c068 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c070 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c078 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c080 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c088 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c090 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c098 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c0a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c0a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c0b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c0b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c0c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c0c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c0d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c0d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c0e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c0e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c0f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c0f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c100 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c108 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c110 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c118 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c120 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c128 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c130 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c138 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c140 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c148 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c150 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c158 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c160 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c168 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c170 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c178 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c180 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c188 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c190 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c198 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c1a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c1a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c1b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c1b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c1c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c1c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c1d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c1d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c1e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c1e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c1f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c1f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c208 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c210 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c218 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c220 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c228 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c230 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c238 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c240 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c248 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c250 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c258 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c260 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c268 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c270 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c278 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c280 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c288 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c290 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c298 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c2a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c2a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c2b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c2b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c2c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c2c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c2d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c2d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c2e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c2e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c2f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c2f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c300 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c308 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c310 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c318 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c320 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c328 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c330 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c338 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c340 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c348 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c350 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c358 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c360 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c368 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c370 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c378 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c380 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c388 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c390 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c398 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c3a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c3a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c3b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c3b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c3c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c3c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c3d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c3d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c3e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c3e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c3f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c3f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c408 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c410 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c418 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c420 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c428 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c430 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c438 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c440 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c448 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c450 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c458 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c460 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c468 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c470 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c478 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c480 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c488 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c490 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c498 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c4a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c4a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c4b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c4b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c4c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c4c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c4d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c4d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c4e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c4e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c4f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c4f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c500 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c508 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c510 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c518 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c520 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c528 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c530 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c538 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c540 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c548 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c550 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c558 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c560 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c568 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c570 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c578 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c580 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c588 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c590 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c598 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c5a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c5a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c5b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c5b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c5c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c5c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c5d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c5d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c5e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c5e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c5f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c5f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c608 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c610 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c618 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c620 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c628 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c630 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c638 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c640 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c648 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c650 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c658 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c660 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c668 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c670 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c678 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c680 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c688 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c690 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c698 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c6a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c6a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c6b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c6b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c6c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c6c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c6d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c6d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c6e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c6e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c6f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c6f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c700 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c708 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c710 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c718 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c720 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c728 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c730 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c738 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c740 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c748 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c750 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c758 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c760 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c768 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c770 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c778 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c780 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c788 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c790 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c798 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c7a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c7a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c7b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c7b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c7c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c7c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c7d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c7d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c7e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c7e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c7f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c7f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ c800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c808 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ c810 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ c818 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ c820 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ c828 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ c830 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ c838 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ c840 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c848 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ c850 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ c858 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ c860 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ c868 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ c870 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ c878 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ c880 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c888 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ c890 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ c898 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ c8a0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ c8a8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ c8b0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ c8b8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ c8c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c8c8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ c8d0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ c8d8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ c8e0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ c8e8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ c8f0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ c8f8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ c900 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ c908 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ c910 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ c918 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ c920 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ c928 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ c930 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c938 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ c940 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ c948 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ c950 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ c958 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ c960 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ c968 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ c970 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c978 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c980 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ c988 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ c990 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ c998 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ c9a0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ c9a8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ c9b0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c9b8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ c9c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ c9c8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ c9d0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ c9d8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ c9e0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ c9e8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ c9f0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ c9f8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ ca00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ca08 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ ca10 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ ca18 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ ca20 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ ca28 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ ca30 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ ca38 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ ca40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ca48 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ ca50 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ ca58 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ ca60 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ ca68 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ ca70 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ ca78 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ ca80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ca88 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ ca90 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ ca98 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ caa0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ caa8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ cab0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ cab8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ cac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cac8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ cad0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ cad8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ cae0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ cae8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ caf0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ caf8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ cb00 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ cb08 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ cb10 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ cb18 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ cb20 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ cb28 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ cb30 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cb38 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ cb40 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ cb48 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ cb50 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ cb58 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ cb60 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ cb68 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ cb70 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cb78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cb80 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ cb88 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ cb90 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ cb98 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ cba0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ cba8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ cbb0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cbb8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ cbc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cbc8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ cbd0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ cbd8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ cbe0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ cbe8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ cbf0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ cbf8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ cc00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cc08 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ cc10 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ cc18 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ cc20 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ cc28 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ cc30 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ cc38 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ cc40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cc48 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ cc50 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ cc58 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ cc60 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ cc68 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ cc70 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ cc78 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ cc80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cc88 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ cc90 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ cc98 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ cca0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ cca8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ ccb0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ ccb8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ ccc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ccc8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ ccd0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ ccd8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ cce0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ cce8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ ccf0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ ccf8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ cd00 - .long Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc108,Opc10f ;@ cd08 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ cd10 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ cd18 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ cd20 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ cd28 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ cd30 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cd38 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ cd40 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ cd48 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ cd50 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ cd58 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ cd60 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ cd68 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ cd70 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cd78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cd80 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ cd88 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ cd90 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ cd98 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ cda0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ cda8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ cdb0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cdb8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ cdc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cdc8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ cdd0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ cdd8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ cde0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ cde8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ cdf0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ cdf8 - .long Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000,Opc000 ;@ ce00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ce08 - .long Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010,Opc010 ;@ ce10 - .long Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc018,Opc01f ;@ ce18 - .long Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc020,Opc027 ;@ ce20 - .long Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028,Opc028 ;@ ce28 - .long Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030,Opc030 ;@ ce30 - .long Opc038,Opc039,Opc03a,Opc03b,Opc03c,Op____,Op____,Op____ ;@ ce38 - .long Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040,Opc040 ;@ ce40 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ce48 - .long Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050,Opc050 ;@ ce50 - .long Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058,Opc058 ;@ ce58 - .long Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060,Opc060 ;@ ce60 - .long Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068,Opc068 ;@ ce68 - .long Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070,Opc070 ;@ ce70 - .long Opc078,Opc079,Opc07a,Opc07b,Opc07c,Op____,Op____,Op____ ;@ ce78 - .long Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080,Opc080 ;@ ce80 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ce88 - .long Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090,Opc090 ;@ ce90 - .long Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098,Opc098 ;@ ce98 - .long Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0,Opc0a0 ;@ cea0 - .long Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8,Opc0a8 ;@ cea8 - .long Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0,Opc0b0 ;@ ceb0 - .long Opc0b8,Opc0b9,Opc0ba,Opc0bb,Opc0bc,Op____,Op____,Op____ ;@ ceb8 - .long Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0,Opc0c0 ;@ cec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cec8 - .long Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0,Opc0d0 ;@ ced0 - .long Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8,Opc0d8 ;@ ced8 - .long Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0,Opc0e0 ;@ cee0 - .long Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8,Opc0e8 ;@ cee8 - .long Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0,Opc0f0 ;@ cef0 - .long Opc0f8,Opc0f9,Opc0fa,Opc0fb,Opc0fc,Op____,Op____,Op____ ;@ cef8 - .long Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100,Opc100 ;@ cf00 - .long Opcf08,Opcf08,Opcf08,Opcf08,Opcf08,Opcf08,Opcf08,Opcf0f ;@ cf08 - .long Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110,Opc110 ;@ cf10 - .long Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc118,Opc11f ;@ cf18 - .long Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc120,Opc127 ;@ cf20 - .long Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128,Opc128 ;@ cf28 - .long Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130,Opc130 ;@ cf30 - .long Opc138,Opc139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cf38 - .long Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140,Opc140 ;@ cf40 - .long Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148,Opc148 ;@ cf48 - .long Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150,Opc150 ;@ cf50 - .long Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158,Opc158 ;@ cf58 - .long Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160,Opc160 ;@ cf60 - .long Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168,Opc168 ;@ cf68 - .long Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170,Opc170 ;@ cf70 - .long Opc178,Opc179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cf78 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cf80 - .long Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188,Opc188 ;@ cf88 - .long Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190,Opc190 ;@ cf90 - .long Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198,Opc198 ;@ cf98 - .long Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0,Opc1a0 ;@ cfa0 - .long Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8,Opc1a8 ;@ cfa8 - .long Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0,Opc1b0 ;@ cfb0 - .long Opc1b8,Opc1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cfb8 - .long Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0,Opc1c0 ;@ cfc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ cfc8 - .long Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0,Opc1d0 ;@ cfd0 - .long Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8,Opc1d8 ;@ cfd8 - .long Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0,Opc1e0 ;@ cfe0 - .long Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8,Opc1e8 ;@ cfe8 - .long Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0,Opc1f0 ;@ cff0 - .long Opc1f8,Opc1f9,Opc1fa,Opc1fb,Opc1fc,Op____,Op____,Op____ ;@ cff8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d000 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d008 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d010 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d018 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d020 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d028 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d030 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d038 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d040 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d048 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d050 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d058 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d060 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d068 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d070 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d078 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d080 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d088 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d090 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d098 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d0a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d0a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d0b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d0b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d0c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d0c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d0d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d0d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d0e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d0e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d0f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d0f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d100 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d108 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d110 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d118 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d120 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d128 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d130 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d138 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d140 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d148 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d150 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d158 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d160 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d168 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d170 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d178 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d180 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d188 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d190 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d198 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d1a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d1a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d1b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d1b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d1c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d1c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d1d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d1d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d1e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d1e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d1f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d1f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d200 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d208 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d210 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d218 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d220 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d228 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d230 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d238 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d240 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d248 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d250 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d258 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d260 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d268 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d270 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d278 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d280 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d288 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d290 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d298 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d2a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d2a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d2b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d2b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d2c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d2c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d2d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d2d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d2e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d2e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d2f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d2f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d300 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d308 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d310 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d318 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d320 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d328 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d330 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d338 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d340 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d348 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d350 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d358 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d360 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d368 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d370 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d378 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d380 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d388 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d390 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d398 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d3a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d3a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d3b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d3b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d3c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d3c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d3d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d3d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d3e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d3e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d3f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d3f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d400 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d408 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d410 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d418 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d420 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d428 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d430 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d438 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d440 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d448 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d450 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d458 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d460 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d468 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d470 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d478 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d480 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d488 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d490 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d498 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d4a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d4a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d4b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d4b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d4c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d4c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d4d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d4d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d4e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d4e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d4f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d4f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d500 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d508 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d510 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d518 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d520 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d528 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d530 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d538 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d540 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d548 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d550 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d558 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d560 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d568 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d570 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d578 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d580 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d588 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d590 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d598 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d5a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d5a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d5b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d5b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d5c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d5c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d5d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d5d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d5e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d5e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d5f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d5f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d600 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d608 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d610 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d618 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d620 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d628 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d630 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d638 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d640 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d648 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d650 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d658 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d660 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d668 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d670 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d678 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d680 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d688 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d690 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d698 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d6a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d6a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d6b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d6b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d6c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d6c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d6d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d6d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d6e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d6e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d6f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d6f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d700 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d708 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d710 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d718 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d720 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d728 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d730 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d738 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d740 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d748 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d750 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d758 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d760 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d768 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d770 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d778 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d780 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d788 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d790 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d798 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d7a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d7a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d7b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d7b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d7c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d7c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d7d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d7d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d7e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d7e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d7f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d7f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ d800 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d808 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ d810 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ d818 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ d820 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ d828 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ d830 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ d838 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d840 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ d848 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ d850 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ d858 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ d860 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ d868 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ d870 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ d878 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d880 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ d888 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ d890 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ d898 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ d8a0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ d8a8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ d8b0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ d8b8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d8c0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ d8c8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ d8d0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ d8d8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ d8e0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ d8e8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ d8f0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ d8f8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ d900 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ d908 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ d910 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ d918 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ d920 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ d928 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ d930 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d938 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ d940 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ d948 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ d950 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ d958 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ d960 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ d968 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ d970 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d978 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ d980 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ d988 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ d990 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ d998 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ d9a0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ d9a8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ d9b0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ d9b8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d9c0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ d9c8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ d9d0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ d9d8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ d9e0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ d9e8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ d9f0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ d9f8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ da00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ da08 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ da10 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ da18 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ da20 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ da28 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ da30 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ da38 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ da40 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ da48 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ da50 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ da58 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ da60 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ da68 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ da70 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ da78 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ da80 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ da88 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ da90 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ da98 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ daa0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ daa8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ dab0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ dab8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dac0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dac8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ dad0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ dad8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ dae0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ dae8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ daf0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ daf8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ db00 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ db08 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ db10 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ db18 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ db20 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ db28 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ db30 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ db38 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ db40 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ db48 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ db50 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ db58 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ db60 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ db68 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ db70 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ db78 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ db80 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ db88 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ db90 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ db98 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ dba0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ dba8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ dbb0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dbb8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dbc0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dbc8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ dbd0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ dbd8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ dbe0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ dbe8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ dbf0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ dbf8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ dc00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dc08 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ dc10 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ dc18 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ dc20 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ dc28 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ dc30 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ dc38 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ dc40 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ dc48 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ dc50 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ dc58 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ dc60 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ dc68 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ dc70 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ dc78 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ dc80 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ dc88 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ dc90 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ dc98 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ dca0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ dca8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ dcb0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ dcb8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dcc0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dcc8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ dcd0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ dcd8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ dce0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ dce8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ dcf0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ dcf8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ dd00 - .long Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd108,Opd10f ;@ dd08 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ dd10 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ dd18 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ dd20 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ dd28 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ dd30 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dd38 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ dd40 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ dd48 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ dd50 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ dd58 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ dd60 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ dd68 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ dd70 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dd78 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ dd80 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ dd88 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ dd90 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ dd98 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ dda0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ dda8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ ddb0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ddb8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ ddc0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ ddc8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ ddd0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ ddd8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ dde0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ dde8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ ddf0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ ddf8 - .long Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000,Opd000 ;@ de00 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ de08 - .long Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010,Opd010 ;@ de10 - .long Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd018,Opd01f ;@ de18 - .long Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd020,Opd027 ;@ de20 - .long Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028,Opd028 ;@ de28 - .long Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030,Opd030 ;@ de30 - .long Opd038,Opd039,Opd03a,Opd03b,Opd03c,Op____,Op____,Op____ ;@ de38 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ de40 - .long Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040,Opd040 ;@ de48 - .long Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050,Opd050 ;@ de50 - .long Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058,Opd058 ;@ de58 - .long Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060,Opd060 ;@ de60 - .long Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068,Opd068 ;@ de68 - .long Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070,Opd070 ;@ de70 - .long Opd078,Opd079,Opd07a,Opd07b,Opd07c,Op____,Op____,Op____ ;@ de78 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ de80 - .long Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080,Opd080 ;@ de88 - .long Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090,Opd090 ;@ de90 - .long Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098,Opd098 ;@ de98 - .long Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0,Opd0a0 ;@ dea0 - .long Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8,Opd0a8 ;@ dea8 - .long Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0,Opd0b0 ;@ deb0 - .long Opd0b8,Opd0b9,Opd0ba,Opd0bb,Opd0bc,Op____,Op____,Op____ ;@ deb8 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dec0 - .long Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0,Opd0c0 ;@ dec8 - .long Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0,Opd0d0 ;@ ded0 - .long Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8,Opd0d8 ;@ ded8 - .long Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0,Opd0e0 ;@ dee0 - .long Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8,Opd0e8 ;@ dee8 - .long Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0,Opd0f0 ;@ def0 - .long Opd0f8,Opd0f9,Opd0fa,Opd0fb,Opd0fc,Op____,Op____,Op____ ;@ def8 - .long Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100,Opd100 ;@ df00 - .long Opdf08,Opdf08,Opdf08,Opdf08,Opdf08,Opdf08,Opdf08,Opdf0f ;@ df08 - .long Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110,Opd110 ;@ df10 - .long Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd118,Opd11f ;@ df18 - .long Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd120,Opd127 ;@ df20 - .long Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128,Opd128 ;@ df28 - .long Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130,Opd130 ;@ df30 - .long Opd138,Opd139,Op____,Op____,Op____,Op____,Op____,Op____ ;@ df38 - .long Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140,Opd140 ;@ df40 - .long Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148,Opd148 ;@ df48 - .long Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150,Opd150 ;@ df50 - .long Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158,Opd158 ;@ df58 - .long Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160,Opd160 ;@ df60 - .long Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168,Opd168 ;@ df68 - .long Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170,Opd170 ;@ df70 - .long Opd178,Opd179,Op____,Op____,Op____,Op____,Op____,Op____ ;@ df78 - .long Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180,Opd180 ;@ df80 - .long Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188,Opd188 ;@ df88 - .long Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190,Opd190 ;@ df90 - .long Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198,Opd198 ;@ df98 - .long Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0,Opd1a0 ;@ dfa0 - .long Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8,Opd1a8 ;@ dfa8 - .long Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0,Opd1b0 ;@ dfb0 - .long Opd1b8,Opd1b9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ dfb8 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dfc0 - .long Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0,Opd1c0 ;@ dfc8 - .long Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0,Opd1d0 ;@ dfd0 - .long Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8,Opd1d8 ;@ dfd8 - .long Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0,Opd1e0 ;@ dfe0 - .long Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8,Opd1e8 ;@ dfe8 - .long Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0,Opd1f0 ;@ dff0 - .long Opd1f8,Opd1f9,Opd1fa,Opd1fb,Opd1fc,Op____,Op____,Op____ ;@ dff8 - .long Ope000,Ope000,Ope000,Ope000,Ope000,Ope000,Ope000,Ope000 ;@ e000 - .long Ope008,Ope008,Ope008,Ope008,Ope008,Ope008,Ope008,Ope008 ;@ e008 - .long Ope010,Ope010,Ope010,Ope010,Ope010,Ope010,Ope010,Ope010 ;@ e010 - .long Ope018,Ope018,Ope018,Ope018,Ope018,Ope018,Ope018,Ope018 ;@ e018 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e020 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e028 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e030 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e038 - .long Ope040,Ope040,Ope040,Ope040,Ope040,Ope040,Ope040,Ope040 ;@ e040 - .long Ope048,Ope048,Ope048,Ope048,Ope048,Ope048,Ope048,Ope048 ;@ e048 - .long Ope050,Ope050,Ope050,Ope050,Ope050,Ope050,Ope050,Ope050 ;@ e050 - .long Ope058,Ope058,Ope058,Ope058,Ope058,Ope058,Ope058,Ope058 ;@ e058 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e060 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e068 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e070 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e078 - .long Ope080,Ope080,Ope080,Ope080,Ope080,Ope080,Ope080,Ope080 ;@ e080 - .long Ope088,Ope088,Ope088,Ope088,Ope088,Ope088,Ope088,Ope088 ;@ e088 - .long Ope090,Ope090,Ope090,Ope090,Ope090,Ope090,Ope090,Ope090 ;@ e090 - .long Ope098,Ope098,Ope098,Ope098,Ope098,Ope098,Ope098,Ope098 ;@ e098 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e0a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e0a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e0b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e0b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e0c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e0c8 - .long Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0,Ope0d0 ;@ e0d0 - .long Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8,Ope0d8 ;@ e0d8 - .long Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0,Ope0e0 ;@ e0e0 - .long Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8,Ope0e8 ;@ e0e8 - .long Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0,Ope0f0 ;@ e0f0 - .long Ope0f8,Ope0f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e0f8 - .long Ope100,Ope100,Ope100,Ope100,Ope100,Ope100,Ope100,Ope100 ;@ e100 - .long Ope108,Ope108,Ope108,Ope108,Ope108,Ope108,Ope108,Ope108 ;@ e108 - .long Ope110,Ope110,Ope110,Ope110,Ope110,Ope110,Ope110,Ope110 ;@ e110 - .long Ope118,Ope118,Ope118,Ope118,Ope118,Ope118,Ope118,Ope118 ;@ e118 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e120 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e128 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e130 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e138 - .long Ope140,Ope140,Ope140,Ope140,Ope140,Ope140,Ope140,Ope140 ;@ e140 - .long Ope148,Ope148,Ope148,Ope148,Ope148,Ope148,Ope148,Ope148 ;@ e148 - .long Ope150,Ope150,Ope150,Ope150,Ope150,Ope150,Ope150,Ope150 ;@ e150 - .long Ope158,Ope158,Ope158,Ope158,Ope158,Ope158,Ope158,Ope158 ;@ e158 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e160 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e168 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e170 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e178 - .long Ope180,Ope180,Ope180,Ope180,Ope180,Ope180,Ope180,Ope180 ;@ e180 - .long Ope188,Ope188,Ope188,Ope188,Ope188,Ope188,Ope188,Ope188 ;@ e188 - .long Ope190,Ope190,Ope190,Ope190,Ope190,Ope190,Ope190,Ope190 ;@ e190 - .long Ope198,Ope198,Ope198,Ope198,Ope198,Ope198,Ope198,Ope198 ;@ e198 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e1a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e1a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e1b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e1b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e1c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e1c8 - .long Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0,Ope1d0 ;@ e1d0 - .long Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8,Ope1d8 ;@ e1d8 - .long Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0,Ope1e0 ;@ e1e0 - .long Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8,Ope1e8 ;@ e1e8 - .long Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0,Ope1f0 ;@ e1f0 - .long Ope1f8,Ope1f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e1f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e200 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e208 - .long Ope210,Ope210,Ope210,Ope210,Ope210,Ope210,Ope210,Ope210 ;@ e210 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e218 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e220 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e228 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e230 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e238 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e240 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e248 - .long Ope250,Ope250,Ope250,Ope250,Ope250,Ope250,Ope250,Ope250 ;@ e250 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e258 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e260 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e268 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e270 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e278 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e280 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e288 - .long Ope290,Ope290,Ope290,Ope290,Ope290,Ope290,Ope290,Ope290 ;@ e290 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e298 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e2a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e2a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e2b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e2b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e2c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e2c8 - .long Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0,Ope2d0 ;@ e2d0 - .long Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8,Ope2d8 ;@ e2d8 - .long Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0,Ope2e0 ;@ e2e0 - .long Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8,Ope2e8 ;@ e2e8 - .long Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0,Ope2f0 ;@ e2f0 - .long Ope2f8,Ope2f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e2f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e300 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e308 - .long Ope310,Ope310,Ope310,Ope310,Ope310,Ope310,Ope310,Ope310 ;@ e310 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e318 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e320 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e328 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e330 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e338 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e340 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e348 - .long Ope350,Ope350,Ope350,Ope350,Ope350,Ope350,Ope350,Ope350 ;@ e350 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e358 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e360 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e368 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e370 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e378 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e380 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e388 - .long Ope390,Ope390,Ope390,Ope390,Ope390,Ope390,Ope390,Ope390 ;@ e390 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e398 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e3a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e3a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e3b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e3b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e3c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e3c8 - .long Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0,Ope3d0 ;@ e3d0 - .long Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8,Ope3d8 ;@ e3d8 - .long Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0,Ope3e0 ;@ e3e0 - .long Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8,Ope3e8 ;@ e3e8 - .long Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0,Ope3f0 ;@ e3f0 - .long Ope3f8,Ope3f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e3f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e400 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e408 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ e410 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e418 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e420 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e428 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e430 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e438 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e440 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e448 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ e450 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e458 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e460 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e468 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e470 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e478 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e480 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e488 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ e490 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e498 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e4a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e4a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e4b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e4b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e4c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e4c8 - .long Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0,Ope4d0 ;@ e4d0 - .long Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8,Ope4d8 ;@ e4d8 - .long Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0,Ope4e0 ;@ e4e0 - .long Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8,Ope4e8 ;@ e4e8 - .long Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0,Ope4f0 ;@ e4f0 - .long Ope4f8,Ope4f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e4f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e500 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e508 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ e510 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e518 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e520 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e528 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e530 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e538 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e540 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e548 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ e550 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e558 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e560 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e568 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e570 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e578 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e580 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e588 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ e590 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e598 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e5a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e5a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e5b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e5b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e5c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e5c8 - .long Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0,Ope5d0 ;@ e5d0 - .long Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8,Ope5d8 ;@ e5d8 - .long Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0,Ope5e0 ;@ e5e0 - .long Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8,Ope5e8 ;@ e5e8 - .long Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0,Ope5f0 ;@ e5f0 - .long Ope5f8,Ope5f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e5f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e600 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e608 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ e610 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e618 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e620 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e628 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e630 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e638 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e640 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e648 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ e650 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e658 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e660 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e668 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e670 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e678 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e680 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e688 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ e690 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e698 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e6a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e6a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e6b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e6b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e6c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e6c8 - .long Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0,Ope6d0 ;@ e6d0 - .long Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8,Ope6d8 ;@ e6d8 - .long Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0,Ope6e0 ;@ e6e0 - .long Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8,Ope6e8 ;@ e6e8 - .long Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0,Ope6f0 ;@ e6f0 - .long Ope6f8,Ope6f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e6f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e700 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e708 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ e710 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e718 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e720 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e728 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e730 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e738 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e740 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e748 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ e750 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e758 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e760 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e768 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e770 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e778 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e780 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e788 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ e790 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e798 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e7a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e7a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e7b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e7b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e7c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e7c8 - .long Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0,Ope7d0 ;@ e7d0 - .long Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8,Ope7d8 ;@ e7d8 - .long Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0,Ope7e0 ;@ e7e0 - .long Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8,Ope7e8 ;@ e7e8 - .long Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0,Ope7f0 ;@ e7f0 - .long Ope7f8,Ope7f9,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e7f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ e800 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ e808 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ e810 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ e818 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ e820 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ e828 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ e830 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ e838 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ e840 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ e848 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ e850 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ e858 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ e860 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ e868 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ e870 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ e878 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ e880 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ e888 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ e890 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ e898 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ e8a0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ e8a8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ e8b0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ e8b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e8f8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ e900 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ e908 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ e910 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ e918 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ e920 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ e928 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ e930 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ e938 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ e940 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ e948 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ e950 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ e958 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ e960 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ e968 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ e970 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ e978 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ e980 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ e988 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ e990 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ e998 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ e9a0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ e9a8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ e9b0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ e9b8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9c0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9c8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9d0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9d8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9e0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9e8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9f0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ e9f8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ ea00 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ ea08 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ ea10 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ ea18 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ ea20 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ ea28 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ ea30 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ ea38 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ ea40 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ ea48 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ ea50 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ ea58 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ ea60 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ ea68 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ ea70 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ ea78 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ ea80 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ ea88 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ ea90 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ ea98 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ eaa0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ eaa8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ eab0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ eab8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eac0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eac8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ead0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ead8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eae0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eae8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eaf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eaf8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ eb00 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ eb08 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ eb10 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ eb18 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ eb20 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ eb28 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ eb30 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ eb38 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ eb40 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ eb48 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ eb50 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ eb58 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ eb60 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ eb68 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ eb70 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ eb78 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ eb80 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ eb88 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ eb90 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ eb98 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ eba0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ eba8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ ebb0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ ebb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ebf8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ ec00 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ ec08 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ ec10 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ ec18 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ ec20 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ ec28 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ ec30 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ ec38 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ ec40 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ ec48 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ ec50 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ ec58 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ ec60 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ ec68 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ ec70 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ ec78 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ ec80 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ ec88 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ ec90 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ ec98 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ eca0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ eca8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ ecb0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ ecb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ece0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ece8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ecf8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ ed00 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ ed08 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ ed10 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ ed18 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ ed20 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ ed28 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ ed30 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ ed38 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ ed40 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ ed48 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ ed50 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ ed58 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ ed60 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ ed68 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ ed70 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ ed78 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ ed80 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ ed88 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ ed90 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ ed98 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ eda0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ eda8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ edb0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ edb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ede0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ ede8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edf0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ edf8 - .long Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00,Opee00 ;@ ee00 - .long Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08,Opee08 ;@ ee08 - .long Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10,Opee10 ;@ ee10 - .long Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18,Opee18 ;@ ee18 - .long Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020,Ope020 ;@ ee20 - .long Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028,Ope028 ;@ ee28 - .long Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030,Ope030 ;@ ee30 - .long Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038,Ope038 ;@ ee38 - .long Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40,Opee40 ;@ ee40 - .long Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48,Opee48 ;@ ee48 - .long Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50,Opee50 ;@ ee50 - .long Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58,Opee58 ;@ ee58 - .long Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060,Ope060 ;@ ee60 - .long Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068,Ope068 ;@ ee68 - .long Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070,Ope070 ;@ ee70 - .long Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078,Ope078 ;@ ee78 - .long Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80,Opee80 ;@ ee80 - .long Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88,Opee88 ;@ ee88 - .long Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90,Opee90 ;@ ee90 - .long Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98,Opee98 ;@ ee98 - .long Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0,Ope0a0 ;@ eea0 - .long Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8,Ope0a8 ;@ eea8 - .long Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0,Ope0b0 ;@ eeb0 - .long Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8,Ope0b8 ;@ eeb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eec0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eec8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eed0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eed8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eee0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eee8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eef0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eef8 - .long Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00,Opef00 ;@ ef00 - .long Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08,Opef08 ;@ ef08 - .long Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10,Opef10 ;@ ef10 - .long Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18,Opef18 ;@ ef18 - .long Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120,Ope120 ;@ ef20 - .long Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128,Ope128 ;@ ef28 - .long Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130,Ope130 ;@ ef30 - .long Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138,Ope138 ;@ ef38 - .long Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40,Opef40 ;@ ef40 - .long Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48,Opef48 ;@ ef48 - .long Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50,Opef50 ;@ ef50 - .long Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58,Opef58 ;@ ef58 - .long Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160,Ope160 ;@ ef60 - .long Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168,Ope168 ;@ ef68 - .long Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170,Ope170 ;@ ef70 - .long Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178,Ope178 ;@ ef78 - .long Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80,Opef80 ;@ ef80 - .long Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88,Opef88 ;@ ef88 - .long Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90,Opef90 ;@ ef90 - .long Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98,Opef98 ;@ ef98 - .long Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0,Ope1a0 ;@ efa0 - .long Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8,Ope1a8 ;@ efa8 - .long Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0,Ope1b0 ;@ efb0 - .long Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8,Ope1b8 ;@ efb8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efc0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efc8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efd0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efd8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efe0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ efe8 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eff0 - .long Op____,Op____,Op____,Op____,Op____,Op____,Op____,Op____ ;@ eff8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f000 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f008 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f010 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f018 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f020 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f028 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f030 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f038 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f040 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f048 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f050 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f058 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f060 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f068 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f070 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f078 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f080 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f088 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f090 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f098 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f0f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f100 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f108 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f110 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f118 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f120 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f128 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f130 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f138 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f140 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f148 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f150 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f158 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f160 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f168 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f170 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f178 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f180 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f188 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f190 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f198 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f1f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f200 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f208 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f210 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f218 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f220 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f228 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f230 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f238 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f240 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f248 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f250 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f258 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f260 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f268 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f270 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f278 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f280 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f288 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f290 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f298 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f2f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f300 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f308 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f310 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f318 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f320 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f328 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f330 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f338 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f340 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f348 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f350 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f358 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f360 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f368 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f370 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f378 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f380 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f388 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f390 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f398 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f3f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f400 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f408 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f410 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f418 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f420 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f428 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f430 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f438 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f440 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f448 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f450 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f458 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f460 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f468 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f470 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f478 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f480 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f488 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f490 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f498 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f4f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f500 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f508 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f510 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f518 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f520 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f528 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f530 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f538 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f540 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f548 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f550 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f558 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f560 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f568 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f570 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f578 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f580 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f588 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f590 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f598 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f5f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f600 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f608 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f610 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f618 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f620 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f628 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f630 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f638 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f640 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f648 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f650 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f658 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f660 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f668 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f670 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f678 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f680 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f688 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f690 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f698 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f6f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f700 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f708 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f710 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f718 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f720 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f728 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f730 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f738 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f740 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f748 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f750 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f758 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f760 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f768 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f770 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f778 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f780 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f788 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f790 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f798 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f7f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f800 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f808 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f810 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f818 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f820 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f828 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f830 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f838 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f840 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f848 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f850 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f858 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f860 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f868 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f870 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f878 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f880 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f888 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f890 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f898 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f8f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f900 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f908 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f910 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f918 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f920 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f928 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f930 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f938 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f940 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f948 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f950 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f958 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f960 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f968 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f970 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f978 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f980 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f988 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f990 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f998 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9a0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9a8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9b0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9b8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9c0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9c8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9d0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9d8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9e0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9e8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9f0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ f9f8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fa98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faa0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faa8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fab0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fab8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fac0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fac8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fad0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fad8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fae0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fae8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ faf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fb98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fba0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fba8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbe0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbe8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fbf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fc98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fca0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fca8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fce0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fce8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fcf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fd98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fda0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fda8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fde0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fde8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdf0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fdf8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fe98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fea0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fea8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ feb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ feb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fec0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fec8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fed0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fed8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fee0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fee8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fef0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fef8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff00 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff08 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff10 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff18 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff20 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff28 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff30 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff38 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff40 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff48 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff50 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff58 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff60 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff68 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff70 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff78 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff80 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff88 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff90 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ff98 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffa0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffa8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffb0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffb8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffc0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffc8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffd0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffd8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffe0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ ffe8 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl ;@ fff0 - .long Op__fl,Op__fl,Op__fl,Op__fl,Op__fl,Op__fl -;@ notaz: we don't want to crash if we run into those 2 missing opcodes -;@ so we leave this pattern to patch it later - .long 0x78563412 - .long 0x56341290 - - -;@ vim:filetype=armasm diff --git a/src/m68k/cyclone/config.h b/src/m68k/cyclone/config.h deleted file mode 100644 index 4f0265c..0000000 --- a/src/m68k/cyclone/config.h +++ /dev/null @@ -1,192 +0,0 @@ - - -/** - * Cyclone 68000 configuration file -**/ - - -/* - * By default, only ARMv4 instructions are used. - * If you want Cyclone to make use of newer ARM instructions, enable the - * options(s) below. You can also override this using make argument: - * make HAVE_ARMv6=1 - */ -#ifndef HAVE_ARMv6 -#define HAVE_ARMv6 0 -#endif - -/* - * If this option is enabled, Microsoft ARMASM compatible output is generated - * (output file - Cyclone.asm). Otherwise GNU as syntax is used (Cyclone.s). - */ -#define USE_MS_SYNTAX 0 - -/* - * Enable this option if you are going to use Cyclone to emulate Genesis / - * Mega Drive system. As VDP chip in these systems had control of the bus, - * several instructions were acting differently, for example TAS did'n have - * the write-back phase. That will be emulated, if this option is enabled. - */ -#define CYCLONE_FOR_GENESIS 0 - -/* - * This option compresses Cyclone's jumptable. Because of this the executable - * will be smaller and load slightly faster and less relocations will be needed. - * This also fixes the crash problem with 0xfffe and 0xffff opcodes. - * Warning: if you enable this, you MUST call CycloneInit() before calling - * CycloneRun(), or else it will crash, also seems to cause SIGSEGVs when enabled. - */ -#define COMPRESS_JUMPTABLE 0 - -/* - * Address mask for memory hadlers. The bits set will be masked out of address - * parameter, which is passed to r/w memory handlers. - * Using 0xff000000 means that only 24 least significant bits should be used. - * Set to 0 if you want to mask unused address bits in the memory handlers yourself. - */ -#define MEMHANDLERS_ADDR_MASK 0 - -/* - * Cyclone keeps the 4 least significant bits of SR, PC+membase and it's cycle - * counter in ARM registers instead of the context for performance reasons. If you for - * any reason need to access them in your memory handlers, enable the options below, - * otherwise disable them to improve performance. - * - * MEMHANDLERS_NEED_PC updates .pc context field with PC value effective at the time - * when memhandler was called (opcode address + 2-10 bytes). - * MEMHANDLERS_NEED_PREV_PC updates .prev_pc context field to currently executed - * opcode address + 2. - * Note that .pc and .prev_pc values are always real pointers to memory, so you must - * subtract .membase to get M68k PC value. - * - * Warning: updating PC in memhandlers is dangerous, as Cyclone may internally - * increment the PC before fetching the next instruction and continue executing - * at wrong location. It's better to wait until Cyclone CycloneRun() finishes. - * - * Warning: if you enable MEMHANDLERS_CHANGE_CYCLES, you must also enable - * MEMHANDLERS_NEED_CYCLES, or else Cyclone will keep reloading the same cycle - * count and this will screw timing (if not cause a deadlock). - */ -#define MEMHANDLERS_NEED_PC 0 -#define MEMHANDLERS_NEED_PREV_PC 0 -#define MEMHANDLERS_NEED_FLAGS 0 -#define MEMHANDLERS_NEED_CYCLES 0 -#define MEMHANDLERS_CHANGE_PC 0 -#define MEMHANDLERS_CHANGE_FLAGS 0 -#define MEMHANDLERS_CHANGE_CYCLES 0 - -/* - * If the following macro is defined, Cyclone no longer calls read*, write*, - * fetch* and checkpc from it's context, it calls these functions directly - * instead, prefixed with prefix selected below. For example, if - * MEMHANDLERS_DIRECT_PREFIX is set to cyclone_, it will call cyclone_read8 - * on byte reads. - * This is to avoid indirect jumps, which are slower. It also saves one ARM - * instruction. - */ -/* MEMHANDLERS_DIRECT_PREFIX "cyclone_" */ - -/* - * If enabled, Cyclone will call .IrqCallback routine from it's context whenever it - * acknowledges an IRQ. IRQ level (.irq) is not cleared automatically, do this in your - * handler if needed. - * This function must either return vector number to use for interrupt exception, - * CYCLONE_INT_ACK_AUTOVECTOR to use autovector (this is the most common case), or - * CYCLONE_INT_ACK_SPURIOUS (least common case). - * If disabled, it simply uses appropriate autovector, clears the IRQ level and - * continues execution. - */ -#define USE_INT_ACK_CALLBACK 1 - -/* - * Enable this if you need old PC, flags or cycles; - * or you change cycles in your IrqCallback function. - */ -#define INT_ACK_NEEDS_STUFF 0 -#define INT_ACK_CHANGES_CYCLES 0 - -/* - * If enabled, .ResetCallback is called from the context, whenever RESET opcode is - * encountered. All context members are valid and can be changed. - * If disabled, RESET opcode acts as an NOP. - */ -#define USE_RESET_CALLBACK 1 - -/* - * If enabled, UnrecognizedCallback is called if an invalid opcode is - * encountered. All context members are valid and can be changed. The handler - * should return zero if you want Cyclone to gererate "Illegal Instruction" - * exception after this, or nonzero if not. In the later case you should change - * the PC by yourself, or else Cyclone will keep executing that opcode all over - * again. - * If disabled, "Illegal Instruction" exception is generated and execution is - * continued. - */ -#define USE_UNRECOGNIZED_CALLBACK 0 - -/* - * This option will also call UnrecognizedCallback for a-line and f-line - * (0xa*** and 0xf***) opcodes the same way as described above, only appropriate - * exceptions will be generated. - */ -#define USE_AFLINE_CALLBACK 0 - -/* - * This makes Cyclone to call checkpc from it's context whenever it changes the PC - * by a large value. It takes and should return the PC value in PC+membase form. - * The flags and cycle counter are not valid in this function. - */ -#define USE_CHECKPC_CALLBACK 1 - -/* - * This determines if checkpc() should be called after jumps when 8 and 16 bit - * displacement values were used. - */ -#define USE_CHECKPC_OFFSETBITS_16 1 -#define USE_CHECKPC_OFFSETBITS_8 0 - -/* - * Call checkpc() after DBcc jumps (which use 16bit displacement). Cyclone prior to - * 0.0087 never did that. - */ -#define USE_CHECKPC_DBRA 1 - -/* - * When this option is enabled Cyclone will do two word writes instead of one - * long write when handling MOVE.L or MOVEM.L with pre-decrementing destination, - * as described in Bart Trzynadlowski's doc (http://www.trzy.org/files/68knotes.txt). - * Enable this if you are emulating a 16 bit system. - */ -#define SPLIT_MOVEL_PD 1 - -/* - * Enable emulation of trace mode. Shouldn't cause any performance decrease, so it - * should be safe to keep this ON. - */ -#define EMULATE_TRACE 1 - -/* - * If enabled, address error exception will be generated if 68k code jumps to an - * odd address. Causes very small performance hit (2 ARM instructions for every - * emulated jump/return/exception in normal case). - * Note: checkpc() must not clear least significant bit of rebased address - * for this to work, as checks are performed after calling checkpc(). - */ -#define EMULATE_ADDRESS_ERRORS_JUMP 1 - -/* - * If enabled, address error exception will be generated if 68k code tries to - * access a word or longword at an odd address. The performance cost is also 2 ARM - * instructions per access (for address error checks). - */ -#define EMULATE_ADDRESS_ERRORS_IO 0 - -/* - * If an address error happens during another address error processing, - * the processor halts until it is reset (catastrophic system failure, as the manual - * states). This option enables halt emulation. - * Note that this might be not desired if it is known that emulated system should - * never reach this state. - */ -#define EMULATE_HALT 1 - diff --git a/src/m68k/musashi/m68k.h b/src/m68k/m68k.h similarity index 100% rename from src/m68k/musashi/m68k.h rename to src/m68k/m68k.h diff --git a/src/m68k/musashi/m68kconf.h b/src/m68k/m68kconf.h similarity index 100% rename from src/m68k/musashi/m68kconf.h rename to src/m68k/m68kconf.h diff --git a/src/m68k/musashi/m68kcpu.c b/src/m68k/m68kcpu.c similarity index 100% rename from src/m68k/musashi/m68kcpu.c rename to src/m68k/m68kcpu.c diff --git a/src/m68k/musashi/m68kcpu.h b/src/m68k/m68kcpu.h similarity index 100% rename from src/m68k/musashi/m68kcpu.h rename to src/m68k/m68kcpu.h diff --git a/src/m68k/musashi/m68kdasm.c b/src/m68k/m68kdasm.c similarity index 100% rename from src/m68k/musashi/m68kdasm.c rename to src/m68k/m68kdasm.c diff --git a/src/m68k/musashi/m68kopac.c b/src/m68k/m68kopac.c similarity index 100% rename from src/m68k/musashi/m68kopac.c rename to src/m68k/m68kopac.c diff --git a/src/m68k/musashi/m68kopdm.c b/src/m68k/m68kopdm.c similarity index 100% rename from src/m68k/musashi/m68kopdm.c rename to src/m68k/m68kopdm.c diff --git a/src/m68k/musashi/m68kopnz.c b/src/m68k/m68kopnz.c similarity index 100% rename from src/m68k/musashi/m68kopnz.c rename to src/m68k/m68kopnz.c diff --git a/src/m68k/musashi/m68kops.c b/src/m68k/m68kops.c similarity index 100% rename from src/m68k/musashi/m68kops.c rename to src/m68k/m68kops.c diff --git a/src/m68k/musashi/m68kops.h b/src/m68k/m68kops.h similarity index 100% rename from src/m68k/musashi/m68kops.h rename to src/m68k/m68kops.h diff --git a/src/makefile.all b/src/makefile.all index 67b2e48..e1ab34a 100644 --- a/src/makefile.all +++ b/src/makefile.all @@ -1,5 +1,4 @@ EMU_DEFINES := -EMU_SOURCES_ASM := EMU_SOURCES_C := $(EMU_PATH)/emulator.c \ $(EMU_PATH)/memoryAccess.c \ $(EMU_PATH)/hardwareRegisters.c \ @@ -10,21 +9,10 @@ EMU_SOURCES_C := $(EMU_PATH)/emulator.c \ $(EMU_PATH)/silkscreen.c \ $(EMU_PATH)/flx68000.c \ $(EMU_PATH)/audio/blip_buf.c \ + $(EMU_PATH)/m68k/m68kops.c \ + $(EMU_PATH)/m68k/m68kopnz.c \ + $(EMU_PATH)/m68k/m68kopdm.c \ + $(EMU_PATH)/m68k/m68kopac.c \ + $(EMU_PATH)/m68k/m68kdasm.c \ + $(EMU_PATH)/m68k/m68kcpu.c \ $(EMU_PATH)/debug/sandbox.c - -#only use with ARMv4<->7, ARMv8 is its own architecture -ifeq ($(EMU_OPTIMIZE_FOR_ARM32), 1) - EMU_DEFINES += -DEMU_OPTIMIZE_FOR_ARM32 - ifeq ($(EMU_NEW_ASM_SYNTAX), 1) - EMU_SOURCES_ASM += $(EMU_PATH)/m68k/cyclone/CycloneNew.S - else - EMU_SOURCES_ASM += $(EMU_PATH)/m68k/cyclone/CycloneOld.S - endif -else - EMU_SOURCES_C += $(EMU_PATH)/m68k/musashi/m68kops.c \ - $(EMU_PATH)/m68k/musashi/m68kopnz.c \ - $(EMU_PATH)/m68k/musashi/m68kopdm.c \ - $(EMU_PATH)/m68k/musashi/m68kopac.c \ - $(EMU_PATH)/m68k/musashi/m68kdasm.c \ - $(EMU_PATH)/m68k/musashi/m68kcpu.c -endif diff --git a/src/memoryAccess.c b/src/memoryAccess.c index 9f78522..660f39c 100644 --- a/src/memoryAccess.c +++ b/src/memoryAccess.c @@ -355,7 +355,7 @@ void m68k_write_memory_32(unsigned int address, unsigned int value){ return; } -//memory access for the disassembler +//memory access for the disassembler, unused but must be defined uint8_t m68k_read_disassembler_8(uint32_t address){return m68k_read_memory_8(address);} uint16_t m68k_read_disassembler_16(uint32_t address){return m68k_read_memory_16(address);} uint32_t m68k_read_disassembler_32(uint32_t address){return m68k_read_memory_32(address);} @@ -406,5 +406,4 @@ void resetAddressSpace(void){ MULTITHREAD_LOOP(bank) for(bank = 0; bank < TOTAL_MEMORY_BANKS; bank++) bankType[bank] = getProperBankType(bank); - flx68000RefreshAddressing(); }